]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage.cmake
3776cc0a2ff76d0d9521096c4921602b7933d909
[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 #-----------------------------------------------------------------------------
18 SET(${BBTK_PACKAGE_NAME}_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
19 #-----------------------------------------------------------------------------
20
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 #-----------------------------------------------------------------------------
29   
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}")
36 ENDIF(UNIX)
37 #-----------------------------------------------------------------------------
38 #SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL "bbtk packages dependencies" FORCE)
39
40 #-----------------------------------------------------------------------------
41 # IF THE USER HAS CHOSEN TO BUILD THE PACKAGE
42 IF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
43   #---------------------------------------------------------------------------
44
45
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   #----------------------------------------------------------------------------
56   
57   
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   #---------------------------------------------------------------------------
66
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}
73       ${BBTK_VTK_LIBRARIES}
74       )
75   ENDIF(${BBTK_PACKAGE_NAME}_USE_VTK)
76   
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}
81       ${BBTK_ITK_LIBRARIES}
82       )
83   ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
84   
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}
90       )
91   ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
92   
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}
98       )
99   ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
100   
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 ...
106       #    SET(${BBTK_PACKAGE_NAME}_LIBS
107       #      ${${BBTK_PACKAGE_NAME}_LIBS}
108       #      ${BBTK_WXWIDGETS_LIBRARIES}
109       #      )
110     ELSE(BBTK_CORE_PACKAGE)
111       # If linking against a non-wx bbtk : problem
112       IF(NOT BBTK_USE_WXWIDGETS)
113         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.")
114       ELSE(NOT BBTK_USE_WXWIDGETS)
115         SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
116       ENDIF(NOT BBTK_USE_WXWIDGETS)
117     ENDIF(BBTK_CORE_PACKAGE)
118   ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
119
120
121   #---------------------------------------------------------------------------
122
123   
124   
125   #---------------------------------------------------------------------------
126   # Recurse into subdirs
127   SUBDIRS(src)
128   SUBDIRS(doc)
129   SUBDIRS(bbs)
130   SUBDIRS(data)
131   #---------------------------------------------------------------------------
132
133 #---------------------------------------------------------------------------
134 ELSE(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
135   #-------------------------------------------------------------------------
136   
137   #-----------------------------------------------------------------------
138   # If package deps in global deps : reset global deps
139   IF(${BBTK_PACKAGE_NAME}_IN_DEPS)
140     SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL 
141       "bbtk packages dependencies" FORCE)
142 #    STRING(REPLACE "${${BBTK_PACKAGE_NAME}_DEPS};"
143 #      "" TEMP
144 #      ${BBTK_PACKAGES_DEPS})
145 #    
146 #    SET(BBTK_PACKAGES_DEPS ${TEMP}
147 #      CACHE INTERNAL "bbtk packages dependencies" FORCE)
148   ENDIF(${BBTK_PACKAGE_NAME}_IN_DEPS)
149   #-----------------------------------------------------------------------
150
151   #-----------------------------------------------------------------------
152   # Remove the package include scripts to avoid loading it by include * 
153   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbs)
154   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}-appli.bbs)
155    #-----------------------------------------------------------------------
156  
157
158 #---------------------------------------------------------------------------
159 ENDIF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
160 #-----------------------------------------------------------------------------
161 # EOF
162 #-----------------------------------------------------------------------------
163
164
165
166