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