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 SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
26 #-----------------------------------------------------------------------------
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}")
35 #-----------------------------------------------------------------------------
36 #SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL "bbtk packages dependencies" FORCE)
38 #-----------------------------------------------------------------------------
39 # IF THE USER HAS CHOSEN TO BUILD THE PACKAGE
40 IF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
41 #---------------------------------------------------------------------------
44 #----------------------------------------------------------------------------
45 # VARS CONFIGURED IN bbPackage.h AND IN doc/bbdoc/header.html.in
46 SET(BBTK_PACKAGE_AUTHOR "${${BBTK_PACKAGE_NAME}_AUTHOR}")
47 SET(BBTK_PACKAGE_DESCRIPTION "${${BBTK_PACKAGE_NAME}_DESCRIPTION}")
48 SET(BBTK_PACKAGE_MAJOR_VERSION ${${BBTK_PACKAGE_NAME}_MAJOR_VERSION})
49 SET(BBTK_PACKAGE_MINOR_VERSION ${${BBTK_PACKAGE_NAME}_MINOR_VERSION})
50 SET(BBTK_PACKAGE_BUILD_VERSION ${${BBTK_PACKAGE_NAME}_BUILD_VERSION})
51 SET(BBTK_PACKAGE_VERSION
52 "\"${${BBTK_PACKAGE_NAME}_MAJOR_VERSION}.${${BBTK_PACKAGE_NAME}_MINOR_VERSION}.${${BBTK_PACKAGE_NAME}_BUILD_VERSION}\"")
53 #----------------------------------------------------------------------------
56 #---------------------------------------------------------------------------
57 # If package deps not in global deps : add them
58 IF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
59 SET(BBTK_PACKAGES_DEPS "${${BBTK_PACKAGE_NAME}_DEPS};${BBTK_PACKAGES_DEPS}"
60 CACHE INTERNAL "bbtk packages dependencies" FORCE)
61 # MESSAGE(STATUS "Packages=${BBTK_PACKAGES_DEPS}")
62 ENDIF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
63 #---------------------------------------------------------------------------
65 #---------------------------------------------------------------------------
66 # Package dependencies
67 IF(${BBTK_PACKAGE_NAME}_USE_VTK)
68 SET(USE_VTK ON CACHE BOOL "Use VTK" FORCE)
69 SET(${BBTK_PACKAGE_NAME}_LIBS
70 ${${BBTK_PACKAGE_NAME}_LIBS}
73 ENDIF(${BBTK_PACKAGE_NAME}_USE_VTK)
75 IF(${BBTK_PACKAGE_NAME}_USE_ITK)
76 SET(USE_ITK ON CACHE BOOL "Use ITK" FORCE)
77 SET(${BBTK_PACKAGE_NAME}_LIBS
78 ${${BBTK_PACKAGE_NAME}_LIBS}
81 ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
83 IF(${BBTK_PACKAGE_NAME}_USE_GDCM)
84 SET(USE_GDCM ON CACHE BOOL "Use GDCM" FORCE)
85 SET(${BBTK_PACKAGE_NAME}_LIBS
86 ${${BBTK_PACKAGE_NAME}_LIBS}
87 ${BBTK_GDCM_LIBRARIES}
89 ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
91 IF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
92 SET(USE_GSMIS ON CACHE BOOL "Use GSMIS" FORCE)
93 SET(${BBTK_PACKAGE_NAME}_LIBS
94 ${${BBTK_PACKAGE_NAME}_LIBS}
95 ${BBTK_GSMIS_LIBRARIES}
97 ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
99 IF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
100 IF(BBTK_CORE_PACKAGE)
101 SET(BBTK_USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
102 MESSAGE(STATUS "BBTK_USE_WXWIDGETS forced to ON by the compilation of the package ${BBTK_PACKAGE_NAME}")
103 # bbtk already links against wx ...
104 # SET(${BBTK_PACKAGE_NAME}_LIBS
105 # ${${BBTK_PACKAGE_NAME}_LIBS}
106 # ${BBTK_WXWIDGETS_LIBRARIES}
108 ELSE(BBTK_CORE_PACKAGE)
109 # If linking against a non-wx bbtk : problem
110 IF(NOT BBTK_USE_WXWIDGETS)
111 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.")
112 ELSE(NOT BBTK_USE_WXWIDGETS)
113 SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
114 ENDIF(NOT BBTK_USE_WXWIDGETS)
115 ENDIF(BBTK_CORE_PACKAGE)
116 ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
119 #---------------------------------------------------------------------------
123 #---------------------------------------------------------------------------
124 # Recurse into subdirs
128 #---------------------------------------------------------------------------
130 #---------------------------------------------------------------------------
131 ELSE(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
132 #-------------------------------------------------------------------------
134 #-----------------------------------------------------------------------
135 # If package deps in global deps : reset global deps
136 IF(${BBTK_PACKAGE_NAME}_IN_DEPS)
137 SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL
138 "bbtk packages dependencies" FORCE)
139 # STRING(REPLACE "${${BBTK_PACKAGE_NAME}_DEPS};"
141 # ${BBTK_PACKAGES_DEPS})
143 # SET(BBTK_PACKAGES_DEPS ${TEMP}
144 # CACHE INTERNAL "bbtk packages dependencies" FORCE)
145 ENDIF(${BBTK_PACKAGE_NAME}_IN_DEPS)
146 #-----------------------------------------------------------------------
148 #-----------------------------------------------------------------------
149 # Remove the package include scripts to avoid loading it by include *
150 FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbs)
151 FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}-appli.bbs)
152 #-----------------------------------------------------------------------
155 #---------------------------------------------------------------------------
156 ENDIF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
157 #-----------------------------------------------------------------------------
159 #-----------------------------------------------------------------------------