1 #---------------------------------------------------------------------------
2 # If not a core package must include necessary cmake scripts
3 IF(NOT BBTK_CORE_PACKAGE)
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 #-------------------------------------------------------------------------
13 ENDIF(NOT BBTK_CORE_PACKAGE)
14 #---------------------------------------------------------------------------
17 #-----------------------------------------------------------------------------
18 SET(${BBTK_PACKAGE_NAME}_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
19 #-----------------------------------------------------------------------------
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 IF(NOT ${BBTK_PACKAGE_NAME}_EXCLUDE_FROM_BUILD_ALL)
26 SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
27 ENDIF(NOT ${BBTK_PACKAGE_NAME}_EXCLUDE_FROM_BUILD_ALL)
28 #-----------------------------------------------------------------------------
30 #-----------------------------------------------------------------------------
31 # Package dependencies
32 SET(${BBTK_PACKAGE_NAME}_DEPS bb${BBTK_PACKAGE_NAME})
33 STRING(REGEX MATCH "${${BBTK_PACKAGE_NAME}_DEPS}"
34 ${BBTK_PACKAGE_NAME}_IN_DEPS
35 "${BBTK_PACKAGES_DEPS}")
37 #-----------------------------------------------------------------------------
38 #SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL "bbtk packages dependencies" FORCE)
40 #-----------------------------------------------------------------------------
41 # IF THE USER HAS CHOSEN TO BUILD THE PACKAGE
42 IF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
43 #---------------------------------------------------------------------------
46 #----------------------------------------------------------------------------
47 # VARS CONFIGURED IN bbPackage.h AND IN doc/bbdoc/header.html.in
48 SET(BBTK_PACKAGE_AUTHOR "${${BBTK_PACKAGE_NAME}_AUTHOR}")
49 SET(BBTK_PACKAGE_DESCRIPTION "${${BBTK_PACKAGE_NAME}_DESCRIPTION}")
50 SET(BBTK_PACKAGE_MAJOR_VERSION ${${BBTK_PACKAGE_NAME}_MAJOR_VERSION})
51 SET(BBTK_PACKAGE_MINOR_VERSION ${${BBTK_PACKAGE_NAME}_MINOR_VERSION})
52 SET(BBTK_PACKAGE_BUILD_VERSION ${${BBTK_PACKAGE_NAME}_BUILD_VERSION})
53 SET(BBTK_PACKAGE_VERSION
54 "\"${${BBTK_PACKAGE_NAME}_MAJOR_VERSION}.${${BBTK_PACKAGE_NAME}_MINOR_VERSION}.${${BBTK_PACKAGE_NAME}_BUILD_VERSION}\"")
55 #----------------------------------------------------------------------------
58 #---------------------------------------------------------------------------
59 # If package deps not in global deps : add them
60 IF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
61 SET(BBTK_PACKAGES_DEPS "${${BBTK_PACKAGE_NAME}_DEPS};${BBTK_PACKAGES_DEPS}"
62 CACHE INTERNAL "bbtk packages dependencies" FORCE)
63 # MESSAGE(STATUS "Packages=${BBTK_PACKAGES_DEPS}")
64 ENDIF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
65 #---------------------------------------------------------------------------
67 #---------------------------------------------------------------------------
68 # Package dependencies
69 IF(${BBTK_PACKAGE_NAME}_USE_VTK)
70 SET(USE_VTK ON CACHE BOOL "Use VTK" FORCE)
71 SET(${BBTK_PACKAGE_NAME}_LIBS
72 ${${BBTK_PACKAGE_NAME}_LIBS}
75 ENDIF(${BBTK_PACKAGE_NAME}_USE_VTK)
77 IF(${BBTK_PACKAGE_NAME}_USE_ITK)
78 SET(USE_ITK ON CACHE BOOL "Use ITK" FORCE)
79 SET(${BBTK_PACKAGE_NAME}_LIBS
80 ${${BBTK_PACKAGE_NAME}_LIBS}
83 ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
85 IF(${BBTK_PACKAGE_NAME}_USE_GDCM)
86 SET(USE_GDCM ON CACHE BOOL "Use GDCM" FORCE)
87 SET(${BBTK_PACKAGE_NAME}_LIBS
88 ${${BBTK_PACKAGE_NAME}_LIBS}
89 ${BBTK_GDCM_LIBRARIES}
91 ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
93 IF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
94 SET(USE_GSMIS ON CACHE BOOL "Use GSMIS" FORCE)
95 SET(${BBTK_PACKAGE_NAME}_LIBS
96 ${${BBTK_PACKAGE_NAME}_LIBS}
97 ${BBTK_GSMIS_LIBRARIES}
99 ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
101 IF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
102 IF(BBTK_CORE_PACKAGE)
103 SET(BBTK_USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
104 MESSAGE(STATUS "BBTK_USE_WXWIDGETS forced to ON by the compilation of the package ${BBTK_PACKAGE_NAME}")
105 # bbtk already links against wx ...
107 SET(${BBTK_PACKAGE_NAME}_LIBS
108 ${${BBTK_PACKAGE_NAME}_LIBS}
109 ${BBTK_WXWIDGETS_LIBRARIES}
112 ELSE(BBTK_CORE_PACKAGE)
113 # If linking against a non-wx bbtk : problem
114 IF(NOT BBTK_BUILT_WITH_WX)
115 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.")
116 ELSE(NOT BBTK_BUILT_WITH_WX)
117 SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
118 # bbtk already links against wx ...
120 SET(${BBTK_PACKAGE_NAME}_LIBS
121 ${${BBTK_PACKAGE_NAME}_LIBS}
122 ${BBTK_WXWIDGETS_LIBRARIES}
125 ENDIF(NOT BBTK_BUILT_WITH_WX)
126 ENDIF(BBTK_CORE_PACKAGE)
127 ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
130 #---------------------------------------------------------------------------
134 #---------------------------------------------------------------------------
135 # Recurse into subdirs
140 #---------------------------------------------------------------------------
142 #---------------------------------------------------------------------------
143 ELSE(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
144 #-------------------------------------------------------------------------
146 #-----------------------------------------------------------------------
147 # If package deps in global deps : reset global deps
148 IF(${BBTK_PACKAGE_NAME}_IN_DEPS)
149 SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL
150 "bbtk packages dependencies" FORCE)
151 # STRING(REPLACE "${${BBTK_PACKAGE_NAME}_DEPS};"
153 # ${BBTK_PACKAGES_DEPS})
155 # SET(BBTK_PACKAGES_DEPS ${TEMP}
156 # CACHE INTERNAL "bbtk packages dependencies" FORCE)
157 ENDIF(${BBTK_PACKAGE_NAME}_IN_DEPS)
158 #-----------------------------------------------------------------------
160 #-----------------------------------------------------------------------
161 # Remove the package include scripts to avoid loading it by include *
162 FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbs)
163 FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}-appli.bbs)
164 #-----------------------------------------------------------------------
167 #---------------------------------------------------------------------------
168 ENDIF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
169 #-----------------------------------------------------------------------------
171 #-----------------------------------------------------------------------------