]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage.cmake
fix package dep
[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 # DOES THE USER WANT TO BUILD THE PACKAGE ?
18 OPTION(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME} 
19   "Build the bbtk package ${BBTK_PACKAGE_NAME} ?" OFF)
20 SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
21 #-----------------------------------------------------------------------------
22   
23 #-----------------------------------------------------------------------------
24 # Package dependencies
25 SET(${BBTK_PACKAGE_NAME}_DEPS bb${BBTK_PACKAGE_NAME})
26 STRING(REGEX MATCH "${${BBTK_PACKAGE_NAME}_DEPS}" 
27   ${BBTK_PACKAGE_NAME}_IN_DEPS
28   "${BBTK_PACKAGES_DEPS}")
29 ENDIF(UNIX)
30 #-----------------------------------------------------------------------------
31 #SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL "bbtk packages dependencies" FORCE)
32
33 #-----------------------------------------------------------------------------
34 # IF THE USER HAS CHOSEN TO BUILD THE PACKAGE
35 IF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
36   #---------------------------------------------------------------------------
37
38   #---------------------------------------------------------------------------
39   # If package deps not in global deps : add them
40   IF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
41     SET(BBTK_PACKAGES_DEPS "${${BBTK_PACKAGE_NAME}_DEPS};${BBTK_PACKAGES_DEPS}"
42       CACHE INTERNAL "bbtk packages dependencies" FORCE)
43 MESSAGE(STATUS "deps=${BBTK_PACKAGES_DEPS}")
44   ENDIF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
45   #---------------------------------------------------------------------------
46
47   #---------------------------------------------------------------------------
48   # Package dependencies
49   IF(${BBTK_PACKAGE_NAME}_USE_VTK)
50     SET(USE_VTK ON CACHE BOOL "Use VTK" FORCE)
51     SET(BBTK_PACKAGE_LIBS
52       ${BBTK_PACKAGE_LIBS}
53       ${BBTK_VTK_LIBRARIES}
54       )
55   ENDIF(${BBTK_PACKAGE_NAME}_USE_VTK)
56   
57   IF(${BBTK_PACKAGE_NAME}_USE_ITK)
58     SET(USE_ITK ON CACHE BOOL "Use ITK" FORCE)
59     SET(BBTK_PACKAGE_LIBS
60       ${BBTK_PACKAGE_LIBS}
61       ${BBTK_ITK_LIBRARIES}
62       )
63   ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
64   
65   IF(${BBTK_PACKAGE_NAME}_USE_GDCM)
66     SET(USE_GDCM ON CACHE BOOL "Use GDCM" FORCE)
67     SET(BBTK_PACKAGE_LIBS
68       ${BBTK_PACKAGE_LIBS}
69       ${BBTK_GDCM_LIBRARIES}
70       )
71   ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
72   
73   IF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
74     SET(USE_GSMIS ON CACHE BOOL "Use GSMIS" FORCE)
75     SET(BBTK_PACKAGE_LIBS
76       ${BBTK_PACKAGE_LIBS}
77       ${BBTK_GSMIS_LIBRARIES}
78       )
79   ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
80   
81   IF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
82     IF(BBTK_CORE_PACKAGE)
83       SET(BBTK_USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
84       MESSAGE(STATUS "BBTK_USE_WXWIDGETS forced to ON by the compilation of the package ${BBTK_PACKAGE_NAME}")
85       # bbtk already links against wx ...
86       #    SET(BBTK_PACKAGE_LIBS
87       #      ${BBTK_PACKAGE_LIBS}
88       #      ${BBTK_WXWIDGETS_LIBRARIES}
89       #      )
90     ELSE(BBTK_CORE_PACKAGE)
91       # If linking against a non-wx bbtk : problem
92       IF(NOT BBTK_USE_WXWIDGETS)
93         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.")
94       ELSE(NOT BBTK_USE_WXWIDGETS)
95         SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
96       ENDIF(NOT BBTK_USE_WXWIDGETS)
97     ENDIF(BBTK_CORE_PACKAGE)
98   ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
99
100
101   #---------------------------------------------------------------------------
102
103   #----------------------------------------------------------------------------
104   # DEFINES ${PACKAGE_NAME}_AUTHOR
105   # ADD_DEFINITIONS( -D${PACKAGE_NAME}_AUTHOR="${PACKAGE_AUTHOR}")
106   #----------------------------------------------------------------------------
107   #----------------------------------------------------------------------------
108   # DEFINES ${PACKAGE_NAME}_DESCRIPTION
109   # ADD_DEFINITIONS( -D${PACKAGE_NAME}_DESCRIPTION="${PACKAGE_DESCRIPTION}")
110   #----------------------------------------------------------------------------
111   #----------------------------------------------------------------------------
112   # DEFINES ${BBTK_PACKAGE_NAME}_VERSION
113   SET(BBTK_PACKAGE_VERSION 
114     "${BBTK_PACKAGE_MAJOR_VERSION}.${BBTK_PACKAGE_MINOR_VERSION}.${BBTK_PACKAGE_BUILD_VERSION}")
115   #ADD_DEFINITIONS( -D${BBTK_PACKAGE_NAME}_VERSION=${BBTK_PACKAGE_VERSION})
116   #----------------------------------------------------------------------------
117   
118   
119   #---------------------------------------------------------------------------
120   # Recurse into subdirs
121   SUBDIRS(src)
122   SUBDIRS(doc)
123   SUBDIRS(bbs)
124 #---------------------------------------------------------------------------
125
126 #---------------------------------------------------------------------------
127 ELSE(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
128   #-------------------------------------------------------------------------
129   
130   #-----------------------------------------------------------------------
131   # If package deps in global deps : remove them
132   IF(${BBTK_PACKAGE_NAME}_IN_DEPS)
133     STRING(REPLACE "${${BBTK_PACKAGE_NAME}_DEPS};"
134       "" TEMP
135       ${BBTK_PACKAGES_DEPS})
136     
137     SET(BBTK_PACKAGES_DEPS ${TEMP}
138       CACHE INTERNAL "bbtk packages dependencies" FORCE)
139   ENDIF(${BBTK_PACKAGE_NAME}_IN_DEPS)
140   #-----------------------------------------------------------------------
141
142   #-----------------------------------------------------------------------
143   # Remove the package include scripts to avoid loading it by include * 
144   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbs)
145   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}-appli.bbs)
146    #-----------------------------------------------------------------------
147  
148
149 #---------------------------------------------------------------------------
150 ENDIF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
151 #-----------------------------------------------------------------------------
152 # EOF
153 #-----------------------------------------------------------------------------
154
155
156
157