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