]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage.cmake
c96cfbcfdce2bd45e01fc9f54b98839c4c6ee31c
[bbtk.git] / kernel / cmake / BBTKConfigurePackage.cmake
1
2 #---------------------------------------------------------------------------
3 # If not a core package must include necessary cmake scripts
4 IF(NOT BBTK_CORE_PACKAGE)
5   #
6   INCLUDE(${BBTK_CMAKE_DIR}/BBTKConfigurePackagePaths.cmake)
7   INCLUDE(${BBTK_CMAKE_DIR}/BBTKBuildAllOption.cmake)
8 #  INCLUDE(${BBTK_CMAKE_DIR}/BBTKMacros.cmake)
9   INCLUDE(${BBTK_CMAKE_DIR}/BBTKFindLibraries.cmake)
10   #-------------------------------------------------------------------------
11   # Configure bbtk_config_build.xml.in for bbi to find the bbs
12   INCLUDE(${BBTK_CMAKE_DIR}/BBTKConfigureBbtkConfigXmlForBuildTree.cmake)
13   #------------------------------------------------------------------------- 
14   #
15 ENDIF(NOT BBTK_CORE_PACKAGE)
16 #---------------------------------------------------------------------------
17
18 #----------------------------------------------------------------------------
19 # USER DEFINED ADDITIONAL INCLUDE DIRS
20 INCLUDE_DIRECTORIES(${${BBTK_PACKAGE_NAME}_INCLUDE_DIRS})
21 #----------------------------------------------------------------------------
22
23
24 #-----------------------------------------------------------------------------
25 SET(${BBTK_PACKAGE_NAME}_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
26 #-----------------------------------------------------------------------------
27
28 #-----------------------------------------------------------------------------
29 # DOES THE USER WANT TO BUILD THE PACKAGE ?
30 OPTION(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME} 
31   "Build the bbtk package ${BBTK_PACKAGE_NAME} ?" OFF)
32 IF(NOT ${BBTK_PACKAGE_NAME}_EXCLUDE_FROM_BUILD_ALL)
33  SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
34 ENDIF(NOT ${BBTK_PACKAGE_NAME}_EXCLUDE_FROM_BUILD_ALL)
35 #-----------------------------------------------------------------------------
36   
37 #-----------------------------------------------------------------------------
38 # Package dependencies
39 SET(${BBTK_PACKAGE_NAME}_DEPS bb${BBTK_PACKAGE_NAME})
40 STRING(REGEX MATCH "${${BBTK_PACKAGE_NAME}_DEPS}" 
41   ${BBTK_PACKAGE_NAME}_IN_DEPS
42   "${BBTK_PACKAGES_DEPS}")
43 #-----------------------------------------------------------------------------
44 #SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL "bbtk packages dependencies" FORCE)
45
46 #-----------------------------------------------------------------------------
47 # IF THE USER HAS CHOSEN TO BUILD THE PACKAGE
48 IF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
49   #---------------------------------------------------------------------------
50
51
52   #----------------------------------------------------------------------------
53   # VARS CONFIGURED IN bbPackage.h AND IN doc/bbdoc/header.html.in
54   SET(BBTK_PACKAGE_AUTHOR        "${${BBTK_PACKAGE_NAME}_AUTHOR}")
55   SET(BBTK_PACKAGE_DESCRIPTION   "${${BBTK_PACKAGE_NAME}_DESCRIPTION}")
56   SET(BBTK_PACKAGE_MAJOR_VERSION ${${BBTK_PACKAGE_NAME}_MAJOR_VERSION})
57   SET(BBTK_PACKAGE_MINOR_VERSION ${${BBTK_PACKAGE_NAME}_MINOR_VERSION})
58   SET(BBTK_PACKAGE_BUILD_VERSION ${${BBTK_PACKAGE_NAME}_BUILD_VERSION})
59   SET(BBTK_PACKAGE_VERSION 
60     "\"${${BBTK_PACKAGE_NAME}_MAJOR_VERSION}.${${BBTK_PACKAGE_NAME}_MINOR_VERSION}.${${BBTK_PACKAGE_NAME}_BUILD_VERSION}\"")
61   #----------------------------------------------------------------------------
62   
63   
64   #---------------------------------------------------------------------------
65   # If package deps not in global deps : add them
66   IF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
67     SET(BBTK_PACKAGES_DEPS "${${BBTK_PACKAGE_NAME}_DEPS};${BBTK_PACKAGES_DEPS}"
68       CACHE INTERNAL "bbtk packages dependencies" FORCE)
69  #   MESSAGE(STATUS "Packages=${BBTK_PACKAGES_DEPS}")
70   ENDIF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
71   #---------------------------------------------------------------------------
72
73   #---------------------------------------------------------------------------
74   # Package dependencies
75   IF(${BBTK_PACKAGE_NAME}_USE_VTK)
76     SET(USE_VTK ON CACHE BOOL "Use VTK" FORCE)
77     SET(${BBTK_PACKAGE_NAME}_LIBS
78       ${${BBTK_PACKAGE_NAME}_LIBS}
79       ${BBTK_VTK_LIBRARIES}
80       )
81   ENDIF(${BBTK_PACKAGE_NAME}_USE_VTK)
82   
83   IF(${BBTK_PACKAGE_NAME}_USE_ITK)
84     SET(USE_ITK ON CACHE BOOL "Use ITK" FORCE)
85     SET(${BBTK_PACKAGE_NAME}_LIBS
86       ${${BBTK_PACKAGE_NAME}_LIBS}
87       ${BBTK_ITK_LIBRARIES}
88       )
89   ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
90   
91   IF(${BBTK_PACKAGE_NAME}_USE_GDCM)
92     SET(USE_GDCM ON CACHE BOOL "Use GDCM" FORCE)
93     SET(${BBTK_PACKAGE_NAME}_LIBS
94       ${${BBTK_PACKAGE_NAME}_LIBS}
95       ${BBTK_GDCM_LIBRARIES}
96       )
97   ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
98   
99   IF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
100     SET(USE_GSMIS ON CACHE BOOL "Use GSMIS" FORCE)
101     SET(${BBTK_PACKAGE_NAME}_LIBS
102       ${${BBTK_PACKAGE_NAME}_LIBS}
103       ${BBTK_GSMIS_LIBRARIES}
104       )
105   ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
106   
107   IF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
108     IF(BBTK_CORE_PACKAGE)
109       SET(BBTK_USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
110       MESSAGE(STATUS "BBTK_USE_WXWIDGETS forced to ON by the compilation of the package ${BBTK_PACKAGE_NAME}")
111       # bbtk already links against wx ...
112       IF(WIN32)
113           SET(${BBTK_PACKAGE_NAME}_LIBS
114             ${${BBTK_PACKAGE_NAME}_LIBS}
115             ${BBTK_WXWIDGETS_LIBRARIES}
116             )
117        ENDIF(WIN32)
118     ELSE(BBTK_CORE_PACKAGE)
119       # If linking against a non-wx bbtk : problem
120       IF(NOT BBTK_BUILT_WITH_WX)
121         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.")
122       ELSE(NOT BBTK_BUILT_WITH_WX)
123         SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
124 # bbtk already links against wx ...
125       IF(WIN32)
126           SET(${BBTK_PACKAGE_NAME}_LIBS
127             ${${BBTK_PACKAGE_NAME}_LIBS}
128             ${BBTK_WXWIDGETS_LIBRARIES}
129             )
130        ENDIF(WIN32)
131       ENDIF(NOT BBTK_BUILT_WITH_WX)
132     ENDIF(BBTK_CORE_PACKAGE)
133   ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
134
135
136   #---------------------------------------------------------------------------
137
138   
139   
140   #---------------------------------------------------------------------------
141   # Recurse into subdirs
142   SUBDIRS(src)
143   SUBDIRS(doc)
144   SUBDIRS(bbs)
145   SUBDIRS(data)
146   #---------------------------------------------------------------------------
147
148 #---------------------------------------------------------------------------
149 ELSE(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
150   #-------------------------------------------------------------------------
151   
152   #-----------------------------------------------------------------------
153   # If package deps in global deps : reset global deps
154   IF(${BBTK_PACKAGE_NAME}_IN_DEPS)
155     SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL 
156       "bbtk packages dependencies" FORCE)
157 #    STRING(REPLACE "${${BBTK_PACKAGE_NAME}_DEPS};"
158 #      "" TEMP
159 #      ${BBTK_PACKAGES_DEPS})
160 #    
161 #    SET(BBTK_PACKAGES_DEPS ${TEMP}
162 #      CACHE INTERNAL "bbtk packages dependencies" FORCE)
163   ENDIF(${BBTK_PACKAGE_NAME}_IN_DEPS)
164   #-----------------------------------------------------------------------
165
166   #-----------------------------------------------------------------------
167   # Remove the package include scripts to avoid loading it by include * 
168   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbs)
169   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}-appli.bbs)
170    #-----------------------------------------------------------------------
171  
172
173 #---------------------------------------------------------------------------
174 ENDIF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
175 #-----------------------------------------------------------------------------
176 # EOF
177 #-----------------------------------------------------------------------------
178
179
180
181