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