]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage.cmake
92c7d53ee38a86a47e850a5b17ce19bb04b5662a
[bbtk.git] / kernel / cmake / BBTKConfigurePackage.cmake
1
2 MESSAGE(STATUS "=======================================")
3 MESSAGE(STATUS "CONFIGURING BBTK PACKAGE ${BBTK_PACKAGE_NAME}")
4
5 #---------------------------------------------------------------------------
6 SET(${BBTK_PACKAGE_NAME}_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
7 #---------------------------------------------------------------------------
8
9
10 #---------------------------------------------------------------------------
11 IF(NOT BBTK_CORE_PACKAGE)
12   #-------------------------------------------------------------------------
13   # If not a core package must include necessary cmake scripts
14   INCLUDE(${BBTK_CMAKE_DIR}/BBTKConfigurePackagePaths.cmake)
15   INCLUDE(${BBTK_CMAKE_DIR}/BBTKBuildAllOption.cmake)
16   #  INCLUDE(${BBTK_CMAKE_DIR}/BBTKMacros.cmake)
17   INCLUDE(${BBTK_CMAKE_DIR}/BBTKFindLibraries.cmake)
18   #-------------------------------------------------------------------------
19   # Configure bbtk_config_build.xml.in for bbi to find the bbs
20   INCLUDE(${BBTK_CMAKE_DIR}/BBTKConfigureBbtkConfigXmlForBuildTree.cmake)
21   #------------------------------------------------------------------------- 
22   # WARNING : 
23   # FOR THE MOMENT ONLY ONE BBTK PACKAGE PER PROJECT ALLOWED!!!
24   # 
25   SET(${BBTK_PACKAGE_NAME}_BINARY_DIR  ${PROJECT_BINARY_DIR})
26   # ${CMAKE_CURRENT_BINARY_DIR})
27   #------------------------------------------------------------------------- 
28   #---------------------------------------------------------------------------
29   # CREATES THE bbtkPackage TEXT FILE
30   CONFIGURE_FILE(
31     ${BBTK_CMAKE_DIR}/bbtkPackage.in
32     ${${BBTK_PACKAGE_NAME}_BINARY_DIR}/bbtkPackage
33     @ONLY
34     )
35   IF (WIN32)
36     INSTALL ( FILES ${${BBTK_PACKAGE_NAME}_BINARY_DIR}/bbtkPackage
37       DESTINATION "" )
38   ENDIF (WIN32)
39   #---------------------------------------------------------------------------
40 ELSE(NOT BBTK_CORE_PACKAGE)
41   SET(${BBTK_PACKAGE_NAME}_BINARY_DIR ${PROJECT_BINARY_DIR})
42 ENDIF(NOT BBTK_CORE_PACKAGE)
43 #---------------------------------------------------------------------------
44
45
46
47
48
49 #----------------------------------------------------------------------------
50 # USER DEFINED ADDITIONAL INCLUDE DIRS
51 INCLUDE_DIRECTORIES(${${BBTK_PACKAGE_NAME}_INCLUDE_DIRS})
52 #----------------------------------------------------------------------------
53
54
55 #---------------------------------------------------------------------------
56 # Package dependencies
57 SET(${BBTK_PACKAGE_NAME}_DEPS bb${BBTK_PACKAGE_NAME})
58 STRING(REGEX MATCH "${${BBTK_PACKAGE_NAME}_DEPS}" 
59   ${BBTK_PACKAGE_NAME}_IN_DEPS
60   "${BBTK_PACKAGES_DEPS}")
61 #---------------------------------------------------------------------------
62 #SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL "bbtk packages dependencies" FORCE)
63
64
65
66 #----------------------------------------------------------------------------
67 # VARS CONFIGURED IN bbPackage.h AND IN doc/bbdoc/header.html.in
68 SET(BBTK_PACKAGE_AUTHOR        "${${BBTK_PACKAGE_NAME}_AUTHOR}")
69 SET(BBTK_PACKAGE_DESCRIPTION   "${${BBTK_PACKAGE_NAME}_DESCRIPTION}")
70 SET(BBTK_PACKAGE_MAJOR_VERSION ${${BBTK_PACKAGE_NAME}_MAJOR_VERSION})
71 SET(BBTK_PACKAGE_MINOR_VERSION ${${BBTK_PACKAGE_NAME}_MINOR_VERSION})
72 SET(BBTK_PACKAGE_BUILD_VERSION ${${BBTK_PACKAGE_NAME}_BUILD_VERSION})
73 SET(BBTK_PACKAGE_VERSION 
74   "\"${${BBTK_PACKAGE_NAME}_MAJOR_VERSION}.${${BBTK_PACKAGE_NAME}_MINOR_VERSION}.${${BBTK_PACKAGE_NAME}_BUILD_VERSION}\"")
75 #----------------------------------------------------------------------------
76
77
78 #---------------------------------------------------------------------------
79 # If package deps not in global deps : add them
80 IF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
81   SET(BBTK_PACKAGES_DEPS "${${BBTK_PACKAGE_NAME}_DEPS};${BBTK_PACKAGES_DEPS}"
82     CACHE INTERNAL "bbtk packages dependencies" FORCE)
83   #   MESSAGE(STATUS "Packages=${BBTK_PACKAGES_DEPS}")
84 ENDIF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
85 #---------------------------------------------------------------------------
86
87 #---------------------------------------------------------------------------
88 # Package dependencies
89 IF(${BBTK_PACKAGE_NAME}_USE_VTK)
90   SET(USE_VTK ON CACHE BOOL "Use VTK" FORCE)
91   SET(${BBTK_PACKAGE_NAME}_LIBS
92     ${${BBTK_PACKAGE_NAME}_LIBS}
93     ${BBTK_VTK_LIBRARIES}
94     )
95 ENDIF(${BBTK_PACKAGE_NAME}_USE_VTK)
96
97 IF(${BBTK_PACKAGE_NAME}_USE_ITK)
98   SET(USE_ITK ON CACHE BOOL "Use ITK" FORCE)
99   SET(${BBTK_PACKAGE_NAME}_LIBS
100     ${${BBTK_PACKAGE_NAME}_LIBS}
101     ${BBTK_ITK_LIBRARIES}
102     )
103 ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
104
105 IF(${BBTK_PACKAGE_NAME}_USE_GDCM)
106   SET(USE_GDCM ON CACHE BOOL "Use GDCM" FORCE)
107   SET(${BBTK_PACKAGE_NAME}_LIBS
108     ${${BBTK_PACKAGE_NAME}_LIBS}
109     ${BBTK_GDCM_LIBRARIES}
110     )
111 ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
112
113 IF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
114   SET(USE_GSMIS ON CACHE BOOL "Use GSMIS" FORCE)
115   SET(${BBTK_PACKAGE_NAME}_LIBS
116     ${${BBTK_PACKAGE_NAME}_LIBS}
117     ${BBTK_GSMIS_LIBRARIES}
118     )
119 ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
120
121 IF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
122   IF(BBTK_CORE_PACKAGE)
123     SET(BBTK_USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
124     MESSAGE(STATUS "BBTK_USE_WXWIDGETS forced to ON by the compilation of the package ${BBTK_PACKAGE_NAME}")
125     # bbtk already links against wx ...
126     IF(WIN32)
127       SET(${BBTK_PACKAGE_NAME}_LIBS
128         ${${BBTK_PACKAGE_NAME}_LIBS}
129         ${BBTK_WXWIDGETS_LIBRARIES}
130         )
131     ENDIF(WIN32)
132   ELSE(BBTK_CORE_PACKAGE)
133     # If linking against a non-wx bbtk : problem
134     IF(NOT BBTK_BUILT_WITH_WX)
135       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.")
136     ELSE(NOT BBTK_BUILT_WITH_WX)
137       SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
138       # bbtk already links against wx ...
139       IF(WIN32)
140         SET(${BBTK_PACKAGE_NAME}_LIBS
141           ${${BBTK_PACKAGE_NAME}_LIBS}
142           ${BBTK_WXWIDGETS_LIBRARIES}
143           )
144       ENDIF(WIN32)
145     ENDIF(NOT BBTK_BUILT_WITH_WX)
146   ENDIF(BBTK_CORE_PACKAGE)
147 ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
148
149
150 #---------------------------------------------------------------------------
151
152
153
154 #---------------------------------------------------------------------------
155 # Recurse into subdirs
156 SUBDIRS(src)
157 SUBDIRS(doc)
158 SUBDIRS(bbs)
159 SUBDIRS(data)
160 #---------------------------------------------------------------------------
161
162
163 #-----------------------------------------------------------------------------
164 # EOF
165 #-----------------------------------------------------------------------------
166
167
168
169