]> 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 SET(${BBTK_PACKAGE_NAME}_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
18
19 #-----------------------------------------------------------------------------
20 # DOES THE USER WANT TO BUILD THE PACKAGE ?
21 OPTION(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME} 
22   "Build the bbtk package ${BBTK_PACKAGE_NAME} ?" OFF)
23 SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
24 #-----------------------------------------------------------------------------
25   
26 #-----------------------------------------------------------------------------
27 # Package dependencies
28 SET(${BBTK_PACKAGE_NAME}_DEPS bb${BBTK_PACKAGE_NAME})
29 STRING(REGEX MATCH "${${BBTK_PACKAGE_NAME}_DEPS}" 
30   ${BBTK_PACKAGE_NAME}_IN_DEPS
31   "${BBTK_PACKAGES_DEPS}")
32 ENDIF(UNIX)
33 #-----------------------------------------------------------------------------
34 #SET(BBTK_PACKAGES_DEPS "" CACHE INTERNAL "bbtk packages dependencies" FORCE)
35
36 #-----------------------------------------------------------------------------
37 # IF THE USER HAS CHOSEN TO BUILD THE PACKAGE
38 IF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
39   #---------------------------------------------------------------------------
40
41   #---------------------------------------------------------------------------
42   # If package deps not in global deps : add them
43   IF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
44     SET(BBTK_PACKAGES_DEPS "${${BBTK_PACKAGE_NAME}_DEPS};${BBTK_PACKAGES_DEPS}"
45       CACHE INTERNAL "bbtk packages dependencies" FORCE)
46 MESSAGE(STATUS "deps=${BBTK_PACKAGES_DEPS}")
47   ENDIF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
48   #---------------------------------------------------------------------------
49
50   #---------------------------------------------------------------------------
51   # Package dependencies
52   IF(${BBTK_PACKAGE_NAME}_USE_VTK)
53     SET(USE_VTK ON CACHE BOOL "Use VTK" FORCE)
54     SET(BBTK_PACKAGE_LIBS
55       ${BBTK_PACKAGE_LIBS}
56       ${BBTK_VTK_LIBRARIES}
57       )
58   ENDIF(${BBTK_PACKAGE_NAME}_USE_VTK)
59   
60   IF(${BBTK_PACKAGE_NAME}_USE_ITK)
61     SET(USE_ITK ON CACHE BOOL "Use ITK" FORCE)
62     SET(BBTK_PACKAGE_LIBS
63       ${BBTK_PACKAGE_LIBS}
64       ${BBTK_ITK_LIBRARIES}
65       )
66   ENDIF(${BBTK_PACKAGE_NAME}_USE_ITK)
67   
68   IF(${BBTK_PACKAGE_NAME}_USE_GDCM)
69     SET(USE_GDCM ON CACHE BOOL "Use GDCM" FORCE)
70     SET(BBTK_PACKAGE_LIBS
71       ${BBTK_PACKAGE_LIBS}
72       ${BBTK_GDCM_LIBRARIES}
73       )
74   ENDIF(${BBTK_PACKAGE_NAME}_USE_GDCM)
75   
76   IF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
77     SET(USE_GSMIS ON CACHE BOOL "Use GSMIS" FORCE)
78     SET(BBTK_PACKAGE_LIBS
79       ${BBTK_PACKAGE_LIBS}
80       ${BBTK_GSMIS_LIBRARIES}
81       )
82   ENDIF(${BBTK_PACKAGE_NAME}_USE_GSMIS)
83   
84   IF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
85     IF(BBTK_CORE_PACKAGE)
86       SET(BBTK_USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
87       MESSAGE(STATUS "BBTK_USE_WXWIDGETS forced to ON by the compilation of the package ${BBTK_PACKAGE_NAME}")
88       # bbtk already links against wx ...
89       #    SET(BBTK_PACKAGE_LIBS
90       #      ${BBTK_PACKAGE_LIBS}
91       #      ${BBTK_WXWIDGETS_LIBRARIES}
92       #      )
93     ELSE(BBTK_CORE_PACKAGE)
94       # If linking against a non-wx bbtk : problem
95       IF(NOT BBTK_USE_WXWIDGETS)
96         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.")
97       ELSE(NOT BBTK_USE_WXWIDGETS)
98         SET(USE_WXWIDGETS ON CACHE BOOL "Use wxWidgets" FORCE)
99       ENDIF(NOT BBTK_USE_WXWIDGETS)
100     ENDIF(BBTK_CORE_PACKAGE)
101   ENDIF(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS)
102
103
104   #---------------------------------------------------------------------------
105
106   #----------------------------------------------------------------------------
107   # DEFINES ${PACKAGE_NAME}_AUTHOR
108   # ADD_DEFINITIONS( -D${PACKAGE_NAME}_AUTHOR="${PACKAGE_AUTHOR}")
109   #----------------------------------------------------------------------------
110   #----------------------------------------------------------------------------
111   # DEFINES ${PACKAGE_NAME}_DESCRIPTION
112   # ADD_DEFINITIONS( -D${PACKAGE_NAME}_DESCRIPTION="${PACKAGE_DESCRIPTION}")
113   #----------------------------------------------------------------------------
114   #----------------------------------------------------------------------------
115   # DEFINES ${BBTK_PACKAGE_NAME}_VERSION
116   SET(BBTK_PACKAGE_VERSION 
117     "${BBTK_PACKAGE_MAJOR_VERSION}.${BBTK_PACKAGE_MINOR_VERSION}.${BBTK_PACKAGE_BUILD_VERSION}")
118   #ADD_DEFINITIONS( -D${BBTK_PACKAGE_NAME}_VERSION=${BBTK_PACKAGE_VERSION})
119   #----------------------------------------------------------------------------
120   
121   
122   #---------------------------------------------------------------------------
123   # Recurse into subdirs
124   SUBDIRS(src)
125   SUBDIRS(doc)
126   SUBDIRS(bbs)
127 #---------------------------------------------------------------------------
128
129 #---------------------------------------------------------------------------
130 ELSE(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
131   #-------------------------------------------------------------------------
132   
133   #-----------------------------------------------------------------------
134   # If package deps in global deps : remove them
135   IF(${BBTK_PACKAGE_NAME}_IN_DEPS)
136     STRING(REPLACE "${${BBTK_PACKAGE_NAME}_DEPS};"
137       "" TEMP
138       ${BBTK_PACKAGES_DEPS})
139     
140     SET(BBTK_PACKAGES_DEPS ${TEMP}
141       CACHE INTERNAL "bbtk packages dependencies" FORCE)
142   ENDIF(${BBTK_PACKAGE_NAME}_IN_DEPS)
143   #-----------------------------------------------------------------------
144
145   #-----------------------------------------------------------------------
146   # Remove the package include scripts to avoid loading it by include * 
147   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbs)
148   FILE(REMOVE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}-appli.bbs)
149    #-----------------------------------------------------------------------
150  
151
152 #---------------------------------------------------------------------------
153 ENDIF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
154 #-----------------------------------------------------------------------------
155 # EOF
156 #-----------------------------------------------------------------------------
157
158
159
160