]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage.cmake
cec4e56dbebfab6a4ddf245493c108c910a1f422
[bbtk.git] / kernel / cmake / BBTKConfigurePackage.cmake
1
2 MESSAGE(STATUS "")
3 MESSAGE(STATUS "=======================================")
4 MESSAGE(STATUS "CONFIGURING BBTK PACKAGE ${BBTK_PACKAGE_NAME}")
5
6 #---------------------------------------------------------------------------
7 SET(${BBTK_PACKAGE_NAME}_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
8 #---------------------------------------------------------------------------
9
10 #---------------------------------------------------------------------------
11 IF(NOT BBTK_CORE_PACKAGE)
12   #---------------------------------------------------------------------------
13   SET(BBTK_PACKAGE_LIBS 
14     ${BBTK_PACKAGE_LIBS}
15     ${BBTK_LIBRARIES})
16   MARK_AS_ADVANCED(BBTK_DIR)
17   #-------------------------------------------------------------------------
18   # If not a core package must include necessary cmake scripts
19   INCLUDE(${BBTK_CMAKE_DIR}/BBTKConfigurePackagePaths.cmake)
20   INCLUDE(${BBTK_CMAKE_DIR}/BBTKBuildAllOption.cmake)
21   #  INCLUDE(${BBTK_CMAKE_DIR}/BBTKMacros.cmake)
22   INCLUDE(${BBTK_CMAKE_DIR}/BBTKFindLibraries.cmake)
23   #-------------------------------------------------------------------------
24   # Configure bbtk_config_build.xml.in for bbi to find the bbs
25   INCLUDE(${BBTK_CMAKE_DIR}/BBTKConfigureBbtkConfigXmlForBuildTree.cmake)
26   #------------------------------------------------------------------------- 
27   # WARNING : 
28   # FOR THE MOMENT ONLY ONE BBTK PACKAGE PER PROJECT ALLOWED!!!
29   # 
30   SET(${BBTK_PACKAGE_NAME}_BINARY_DIR  ${PROJECT_BINARY_DIR})
31   # ${CMAKE_CURRENT_BINARY_DIR})
32   #------------------------------------------------------------------------- 
33   #---------------------------------------------------------------------------
34   # CREATES THE bbtkPackage TEXT FILE
35   CONFIGURE_FILE(
36     ${BBTK_CMAKE_DIR}/bbtkPackage.in
37     ${${BBTK_PACKAGE_NAME}_BINARY_DIR}/bbtkPackage
38     @ONLY
39     )
40   IF (WIN32)
41     INSTALL ( FILES ${${BBTK_PACKAGE_NAME}_BINARY_DIR}/bbtkPackage
42       DESTINATION "." )
43   ENDIF (WIN32)
44   #---------------------------------------------------------------------------
45 ELSE(NOT BBTK_CORE_PACKAGE)
46   SET(${BBTK_PACKAGE_NAME}_BINARY_DIR ${PROJECT_BINARY_DIR})
47 ENDIF(NOT BBTK_CORE_PACKAGE)
48 #---------------------------------------------------------------------------
49
50
51
52
53
54 #----------------------------------------------------------------------------
55 # USER DEFINED ADDITIONAL INCLUDE DIRS
56 INCLUDE_DIRECTORIES(${${BBTK_PACKAGE_NAME}_INCLUDE_DIRS})
57 #----------------------------------------------------------------------------
58
59
60 #---------------------------------------------------------------------------
61 # Package dependencies
62 SET(${BBTK_PACKAGE_NAME}_DEPS bb${BBTK_PACKAGE_NAME})
63 STRING(REGEX MATCH "${${BBTK_PACKAGE_NAME}_DEPS}" 
64   ${BBTK_PACKAGE_NAME}_IN_DEPS
65   "${BBTK_PACKAGES_DEPS}")
66 #---------------------------------------------------------------------------
67 #SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL "bbtk packages dependencies" FORCE)
68
69
70
71 #----------------------------------------------------------------------------
72 # VARS CONFIGURED IN bbPackage.h AND IN doc/bbdoc/header.html.in
73 SET(BBTK_PACKAGE_AUTHOR        "${${BBTK_PACKAGE_NAME}_AUTHOR}")
74 SET(BBTK_PACKAGE_DESCRIPTION   "${${BBTK_PACKAGE_NAME}_DESCRIPTION}")
75 SET(BBTK_PACKAGE_MAJOR_VERSION ${${BBTK_PACKAGE_NAME}_MAJOR_VERSION})
76 SET(BBTK_PACKAGE_MINOR_VERSION ${${BBTK_PACKAGE_NAME}_MINOR_VERSION})
77 SET(BBTK_PACKAGE_BUILD_VERSION ${${BBTK_PACKAGE_NAME}_BUILD_VERSION})
78 SET(BBTK_PACKAGE_VERSION 
79   "\"${${BBTK_PACKAGE_NAME}_MAJOR_VERSION}.${${BBTK_PACKAGE_NAME}_MINOR_VERSION}.${${BBTK_PACKAGE_NAME}_BUILD_VERSION}\"")
80 #----------------------------------------------------------------------------
81
82
83 #---------------------------------------------------------------------------
84 # If package deps not in global deps : add them
85 IF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
86   SET(BBTK_PACKAGES_DEPS "${${BBTK_PACKAGE_NAME}_DEPS};${BBTK_PACKAGES_DEPS}"
87     CACHE INTERNAL "bbtk packages dependencies" FORCE)
88   #   MESSAGE(STATUS "Packages=${BBTK_PACKAGES_DEPS}")
89 ENDIF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
90 #---------------------------------------------------------------------------
91
92 #---------------------------------------------------------------------------
93 # Package dependencies
94 IF(${BBTK_PACKAGE_NAME}_USE_VTK)
95   SET(USE_VTK ON CACHE BOOL "Use VTK" FORCE)
96   SET(${BBTK_PACKAGE_NAME}_LIBS
97     ${${BBTK_PACKAGE_NAME}_LIBS}
98     ${VTK_LIBRARIES}
99     )
100 ENDIF(${BBTK_PACKAGE_NAME}_USE_VTK)
101
102 IF(${BBTK_PACKAGE_NAME}_USE_ITK)
103   SET(USE_ITK ON CACHE BOOL "Use ITK" FORCE)
104   SET(${BBTK_PACKAGE_NAME}_LIBS
105     ${${BBTK_PACKAGE_NAME}_LIBS}
106     ${ITK_LIBRARIES}
107     )
108 ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
109
110 IF(${BBTK_PACKAGE_NAME}_USE_QT)
111   SET(USE_QT4 ON CACHE BOOL "Use QT" FORCE)
112   SET(${BBTK_PACKAGE_NAME}_LIBS
113     ${${BBTK_PACKAGE_NAME}_LIBS}
114     ${QT_LIBRARIES}
115     )
116 ENDIF(${BBTK_PACKAGE_NAME}_USE_QT)
117
118 #----------
119
120 IF(${BBTK_PACKAGE_NAME}_USE_GDCM)
121   SET(USE_GDCM ON CACHE BOOL "Use GDCM" )
122   SET(USE_GDCM2 OFF CACHE BOOL "Use GDCM2" )
123   SET(USE_GDCM_VTK ON CACHE BOOL "Use GDCM_VTK" FORCE)
124   SET(${BBTK_PACKAGE_NAME}_LIBS
125     ${${BBTK_PACKAGE_NAME}_LIBS}
126     ${GDCM_LIBRARIES}
127     )
128         IF(USE_GDCM)
129                 IF(USE_GDCM2)
130                 message(FATAL_ERROR "You cannot select both GDCM and GDCM2 (DICOM library readers)")
131                 ENDIF(USE_GDCM2)
132         ENDIF(USE_GDCM)
133 ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
134
135 #----------
136
137 IF(${BBTK_PACKAGE_NAME}_USE_GDCM2)
138   SET(USE_GDCM2 ON CACHE BOOL "Use GDCM2" FORCE)
139   SET(USE_GDCM2_VTK ON CACHE BOOL "Use GDCM2_VTK" FORCE)
140   SET(${BBTK_PACKAGE_NAME}_LIBS
141     ${${BBTK_PACKAGE_NAME}_LIBS}
142     ${GDCM2_LIBRARIES}
143     )
144         IF(USE_GDCM2)
145                 IF(USE_GDCM)
146                 message(FATAL_ERROR "You cannot select both GDCM and GDCM2 (DICOM library readers)")
147                 ENDIF(USE_GDCM)
148         ENDIF(USE_GDCM2)
149 ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM2)
150
151 #----------
152
153 IF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
154   SET(USE_GSMIS ON CACHE BOOL "Use GSMIS" FORCE)
155   SET(${BBTK_PACKAGE_NAME}_LIBS
156     ${${BBTK_PACKAGE_NAME}_LIBS}
157     ${GSMIS_LIBRARIES}
158     )
159 ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
160
161 IF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
162   IF(BBTK_CORE_PACKAGE)
163     SET(BBTK_USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
164     MESSAGE(STATUS "BBTK_USE_WXWIDGETS forced to ON by the compilation of the package ${BBTK_PACKAGE_NAME}")
165     # bbtk already links against wx ...
166     IF(WIN32)
167       SET(${BBTK_PACKAGE_NAME}_LIBS
168         ${${BBTK_PACKAGE_NAME}_LIBS}
169         ${WXWIDGETS_LIBRARIES}
170         )
171     ENDIF(WIN32)
172   ELSE(BBTK_CORE_PACKAGE)
173     # If linking against a non-wx bbtk : problem
174     IF(NOT BBTK_BUILT_WITH_WX)
175       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.")
176     ELSE(NOT BBTK_BUILT_WITH_WX)
177       SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
178       # bbtk already links against wx ...
179       IF(WIN32)
180         SET(${BBTK_PACKAGE_NAME}_LIBS
181           ${${BBTK_PACKAGE_NAME}_LIBS}
182           ${WXWIDGETS_LIBRARIES}
183           )
184       ENDIF(WIN32)
185     ENDIF(NOT BBTK_BUILT_WITH_WX)
186   ENDIF(BBTK_CORE_PACKAGE)
187 ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
188
189
190 #---------------------------------------------------------------------------
191
192 MESSAGE(STATUS "")
193 MESSAGE(STATUS "=======================================")
194 MESSAGE(STATUS "${BBTK_PACKAGE_NAME} link libraries:")
195 MESSAGE(STATUS "${${BBTK_PACKAGE_NAME}_LIBS}")
196 MESSAGE(STATUS "=======================================")
197 MESSAGE(STATUS "")
198
199 #---------------------------------------------------------------------------
200 # Recurse into ADD_SUBDIRECTORY
201 ADD_SUBDIRECTORY(src)
202 ADD_SUBDIRECTORY(doc)
203 ADD_SUBDIRECTORY(bbs)
204 ADD_SUBDIRECTORY(data)
205 #---------------------------------------------------------------------------
206
207 MESSAGE(STATUS "=======================================")
208 MESSAGE(STATUS "")
209
210 #-----------------------------------------------------------------------------
211 # EOF
212 #-----------------------------------------------------------------------------
213
214
215
216