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