]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage.cmake
*** empty log message ***
[bbtk.git] / kernel / cmake / BBTKConfigurePackage.cmake
1 #---------------------------------------------------------------------------
2 # If not a core package must include necessary cmake scripts
3 IF(NOT BBTK_CORE_PACKAGE)
4   #
5   INCLUDE(${BBTK_CMAKE_DIR}/BBTKBuildAllOption.cmake)
6   INCLUDE(${BBTK_CMAKE_DIR}/BBTKMacros.cmake)
7   INCLUDE(${BBTK_CMAKE_DIR}/BBTKFindLibraries.cmake)
8   #-------------------------------------------------------------------------
9   # Configure bbtk_config_build.xml.in for bbi to find the bbs
10   INCLUDE(${BBTK_CMAKE_DIR}/BBTKConfigureBbtkConfigXmlForBuildTree.cmake)
11   #------------------------------------------------------------------------- 
12   #
13 ENDIF(NOT BBTK_CORE_PACKAGE)
14 #---------------------------------------------------------------------------
15
16
17 #-----------------------------------------------------------------------------
18 SET(${BBTK_PACKAGE_NAME}_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
19 #-----------------------------------------------------------------------------
20
21 #-----------------------------------------------------------------------------
22 # DOES THE USER WANT TO BUILD THE PACKAGE ?
23 OPTION(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME} 
24   "Build the bbtk package ${BBTK_PACKAGE_NAME} ?" OFF)
25 SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
26 #-----------------------------------------------------------------------------
27   
28 #-----------------------------------------------------------------------------
29 # Package dependencies
30 SET(${BBTK_PACKAGE_NAME}_DEPS bb${BBTK_PACKAGE_NAME})
31 STRING(REGEX MATCH "${${BBTK_PACKAGE_NAME}_DEPS}" 
32   ${BBTK_PACKAGE_NAME}_IN_DEPS
33   "${BBTK_PACKAGES_DEPS}")
34 ENDIF(UNIX)
35 #-----------------------------------------------------------------------------
36 #SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL "bbtk packages dependencies" FORCE)
37
38 #-----------------------------------------------------------------------------
39 # IF THE USER HAS CHOSEN TO BUILD THE PACKAGE
40 IF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
41   #---------------------------------------------------------------------------
42
43   #---------------------------------------------------------------------------
44   # If package deps not in global deps : add them
45   IF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
46     SET(BBTK_PACKAGES_DEPS "${${BBTK_PACKAGE_NAME}_DEPS};${BBTK_PACKAGES_DEPS}"
47       CACHE INTERNAL "bbtk packages dependencies" FORCE)
48 MESSAGE(STATUS "deps=${BBTK_PACKAGES_DEPS}")
49   ENDIF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
50   #---------------------------------------------------------------------------
51
52   #---------------------------------------------------------------------------
53   # Package dependencies
54   IF(${BBTK_PACKAGE_NAME}_USE_VTK)
55     SET(USE_VTK ON CACHE BOOL "Use VTK" FORCE)
56     SET(${BBTK_PACKAGE_NAME}_LIBS
57       ${${BBTK_PACKAGE_NAME}_LIBS}
58       ${BBTK_VTK_LIBRARIES}
59       )
60   ENDIF(${BBTK_PACKAGE_NAME}_USE_VTK)
61   
62   IF(${BBTK_PACKAGE_NAME}_USE_ITK)
63     SET(USE_ITK ON CACHE BOOL "Use ITK" FORCE)
64     SET(${BBTK_PACKAGE_NAME}_LIBS
65       ${${BBTK_PACKAGE_NAME}_LIBS}
66       ${BBTK_ITK_LIBRARIES}
67       )
68   ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
69   
70   IF(${BBTK_PACKAGE_NAME}_USE_GDCM)
71     SET(USE_GDCM ON CACHE BOOL "Use GDCM" FORCE)
72     SET(${BBTK_PACKAGE_NAME}_LIBS
73       ${${BBTK_PACKAGE_NAME}_LIBS}
74       ${BBTK_GDCM_LIBRARIES}
75       )
76   ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
77   
78   IF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
79     SET(USE_GSMIS ON CACHE BOOL "Use GSMIS" FORCE)
80     SET(${BBTK_PACKAGE_NAME}_LIBS
81       ${${BBTK_PACKAGE_NAME}_LIBS}
82       ${BBTK_GSMIS_LIBRARIES}
83       )
84   ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
85   
86   IF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
87     IF(BBTK_CORE_PACKAGE)
88       SET(BBTK_USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
89       MESSAGE(STATUS "BBTK_USE_WXWIDGETS forced to ON by the compilation of the package ${BBTK_PACKAGE_NAME}")
90       # bbtk already links against wx ...
91       #    SET(${BBTK_PACKAGE_NAME}_LIBS
92       #      ${${BBTK_PACKAGE_NAME}_LIBS}
93       #      ${BBTK_WXWIDGETS_LIBRARIES}
94       #      )
95     ELSE(BBTK_CORE_PACKAGE)
96       # If linking against a non-wx bbtk : problem
97       IF(NOT BBTK_USE_WXWIDGETS)
98         MESSAGE(FATAL_ERROR "The bbtk package ${BBTK_PACKAGE_NAME} needs wxWidgets however the bbtk library which was found on your system was not compiled with wxWidgets : recompile it and rebuild the package.")
99       ELSE(NOT BBTK_USE_WXWIDGETS)
100         SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
101       ENDIF(NOT BBTK_USE_WXWIDGETS)
102     ENDIF(BBTK_CORE_PACKAGE)
103   ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
104
105
106   #---------------------------------------------------------------------------
107
108   #----------------------------------------------------------------------------
109   # DEFINES ${PACKAGE_NAME}_AUTHOR
110   # ADD_DEFINITIONS( -D${PACKAGE_NAME}_AUTHOR="${PACKAGE_AUTHOR}")
111   #----------------------------------------------------------------------------
112   #----------------------------------------------------------------------------
113   # DEFINES ${PACKAGE_NAME}_DESCRIPTION
114   # ADD_DEFINITIONS( -D${PACKAGE_NAME}_DESCRIPTION="${PACKAGE_DESCRIPTION}")
115   #----------------------------------------------------------------------------
116   #----------------------------------------------------------------------------
117   # DEFINES ${BBTK_PACKAGE_NAME}_VERSION
118   SET(${BBTK_PACKAGE_NAME}_VERSION 
119     "${${BBTK_PACKAGE_NAME}_MAJOR_VERSION}.${${BBTK_PACKAGE_NAME}_MINOR_VERSION}.${${BBTK_PACKAGE_NAME}_BUILD_VERSION}")
120   #ADD_DEFINITIONS( -D${${BBTK_PACKAGE_NAME}_NAME}_VERSION=${${BBTK_PACKAGE_NAME}_VERSION})
121   #----------------------------------------------------------------------------
122   
123   
124   #---------------------------------------------------------------------------
125   # Recurse into subdirs
126   SUBDIRS(src)
127   SUBDIRS(doc)
128   SUBDIRS(bbs)
129 #---------------------------------------------------------------------------
130
131 #---------------------------------------------------------------------------
132 ELSE(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
133   #-------------------------------------------------------------------------
134   
135   #-----------------------------------------------------------------------
136   # If package deps in global deps : remove them
137   IF(${BBTK_PACKAGE_NAME}_IN_DEPS)
138     STRING(REPLACE "${${BBTK_PACKAGE_NAME}_DEPS};"
139       "" TEMP
140       ${BBTK_PACKAGES_DEPS})
141     
142     SET(BBTK_PACKAGES_DEPS ${TEMP}
143       CACHE INTERNAL "bbtk packages dependencies" FORCE)
144   ENDIF(${BBTK_PACKAGE_NAME}_IN_DEPS)
145   #-----------------------------------------------------------------------
146
147   #-----------------------------------------------------------------------
148   # Remove the package include scripts to avoid loading it by include * 
149   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbs)
150   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}-appli.bbs)
151    #-----------------------------------------------------------------------
152  
153
154 #---------------------------------------------------------------------------
155 ENDIF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
156 #-----------------------------------------------------------------------------
157 # EOF
158 #-----------------------------------------------------------------------------
159
160
161
162