]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage.cmake
bbtk now depends on crea !
[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     ${BBTK_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     ${BBTK_ITK_LIBRARIES}
107     )
108 ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
109
110 IF(${BBTK_PACKAGE_NAME}_USE_GDCM)
111   SET(USE_GDCM ON CACHE BOOL "Use GDCM" FORCE)
112   SET(${BBTK_PACKAGE_NAME}_LIBS
113     ${${BBTK_PACKAGE_NAME}_LIBS}
114     ${BBTK_GDCM_LIBRARIES}
115     )
116 ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
117
118 IF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
119   SET(USE_GSMIS ON CACHE BOOL "Use GSMIS" FORCE)
120   SET(${BBTK_PACKAGE_NAME}_LIBS
121     ${${BBTK_PACKAGE_NAME}_LIBS}
122     ${BBTK_GSMIS_LIBRARIES}
123     )
124 ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
125
126 IF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
127   IF(BBTK_CORE_PACKAGE)
128     SET(BBTK_USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
129     MESSAGE(STATUS "BBTK_USE_WXWIDGETS forced to ON by the compilation of the package ${BBTK_PACKAGE_NAME}")
130     # bbtk already links against wx ...
131     IF(WIN32)
132       SET(${BBTK_PACKAGE_NAME}_LIBS
133         ${${BBTK_PACKAGE_NAME}_LIBS}
134         ${BBTK_WXWIDGETS_LIBRARIES}
135         )
136     ENDIF(WIN32)
137   ELSE(BBTK_CORE_PACKAGE)
138     # If linking against a non-wx bbtk : problem
139     IF(NOT BBTK_BUILT_WITH_WX)
140       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.")
141     ELSE(NOT BBTK_BUILT_WITH_WX)
142       SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
143       # bbtk already links against wx ...
144       IF(WIN32)
145         SET(${BBTK_PACKAGE_NAME}_LIBS
146           ${${BBTK_PACKAGE_NAME}_LIBS}
147           ${BBTK_WXWIDGETS_LIBRARIES}
148           )
149       ENDIF(WIN32)
150     ENDIF(NOT BBTK_BUILT_WITH_WX)
151   ENDIF(BBTK_CORE_PACKAGE)
152 ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
153
154
155 #---------------------------------------------------------------------------
156
157
158
159 #---------------------------------------------------------------------------
160 # Recurse into subdirs
161 SUBDIRS(src)
162 SUBDIRS(doc)
163 SUBDIRS(bbs)
164 SUBDIRS(data)
165 #---------------------------------------------------------------------------
166
167 MESSAGE(STATUS "=======================================")
168 MESSAGE(STATUS "")
169
170 #-----------------------------------------------------------------------------
171 # EOF
172 #-----------------------------------------------------------------------------
173
174
175
176