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