]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/CMakeLists.txt
Bug 1540
[creaMaracasVisu.git] / lib / maracasVisuLib / CMakeLists.txt
1 #----------------------------------------------------------------------------
2 # USER ! SET THE NAME OF YOUR LIBRARY
3 SET ( LIBRARY_NAME   creaMaracasVisu  )
4
5 #EED 5/Mars/2010
6 IF (UNIX)
7   add_definitions(-fPIC)
8 ENDIF(UNIX)
9
10 #----------------------------------------------------------------------------
11
12 #----------------------------------------------------------------------------
13 # CREATES A USER OPTION IN CMAKE
14 OPTION ( BUILD_${LIBRARY_NAME}  "Build ${LIBRARY_NAME} library ?" ON)
15
16 OPTION ( EXPORTS_MaracasKernel  "Build ${LIBRARY_NAME} library ?" ON)
17 IF (EXPORTS_MaracasKernel)
18         SET(MaracasKernel_EXPORTS)
19         ADD_DEFINITIONS (-DMaracasKernel_EXPORTS)
20 ENDIF(EXPORTS_MaracasKernel)
21
22 #----------------------------------------------------------------------------
23 IF ( BUILD_${LIBRARY_NAME} )
24 #----------------------------------------------------------------------------
25
26   #----------------------------------------------------------------------------
27   # BUILD LIBRARY
28   #----------------------------------------------------------------------------
29
30         #message(jhcl\n\n ${crea_LIBRARIES})
31         #INCLUDE(include/Modules/MARACAS_Find_LIBIDO.cmake)
32         #SET(CREA_LIBRARIES C:/creaBin/Debug/crea.lib)
33         #FIND_PACKAGE(crea)
34 #jhcl-End===========================================================================
35   #----------------------------------------------------------------------------
36   # LIBRARY HEADERS (TO BE INSTALLED)
37   # EITHER LIST ALL .h IN CURRENT DIR USING NEXT LINE:
38   #FILE(GLOB ${LIBRARY_NAME}_HEADERS "*.h")
39   # OR MANUALLY LIST YOUR HEADERS WITH NEXT COMMAND
40
41   FILE(GLOB ${LIBRARY_NAME}_HEADERS_WXWIN "src/interface/wxWindows/*.h")
42   FILE(GLOB ${LIBRARY_NAME}_SOURCES_WXWIN src/interface/wxWindows/*.cxx src/interface/wxWindows/*.cpp src/interface/wxWindows/*.cc)
43
44   FILE(GLOB ${LIBRARY_NAME}_HEADERS_CONTOUR "src/interface/wxWindows/Contour/*.h")
45   FILE(GLOB ${LIBRARY_NAME}_SOURCES_CONTOUR src/interface/wxWindows/Contour/*.cxx src/interface/wxWindows/Contour/*.cpp src/interface/wxWindows/Contour/*.cc)
46
47   FILE(GLOB ${LIBRARY_NAME}_HEADERS_ThresholdImageView "src/interface/wxWindows/widgets/ThresholdImageView/*.h")
48   FILE(GLOB ${LIBRARY_NAME}_SOURCES_ThresholdImageView src/interface/wxWindows/widgets/ThresholdImageView/*.cxx src/interface/wxWindows/widgets/ThresholdImageView/*.cpp src/interface/wxWindows/widgets/ThresholdImageView/*.cc)
49
50   FILE(GLOB ${LIBRARY_NAME}_HEADERS_WIDGETS "src/interface/wxWindows/widgets/*.h")
51   FILE(GLOB ${LIBRARY_NAME}_SOURCES_WIDGETS src/interface/wxWindows/widgets/*.cxx src/interface/wxWindows/widgets/*.cpp src/interface/wxWindows/widgets/*.cc)
52
53   FILE(GLOB ${LIBRARY_NAME}_HEADERS_PPLOTTER "src/interface/wxWindows/widgets/pPlotter/*.h")
54   FILE(GLOB ${LIBRARY_NAME}_SOURCES_PPLOTTER src/interface/wxWindows/widgets/pPlotter/*.cxx src/interface/wxWindows/widgets/pPlotter/*.cpp src/interface/wxWindows/widgets/pPlotter/*.cc)
55
56 #DFCH
57   FILE(GLOB ${LIBRARY_NAME}_HEADERS_CBUTTONCONTAINER "src/interface/wxWindows/widgets/creaButtonContainer/model/*.h" "src/interface/wxWindows/widgets/creaButtonContainer/model/*.txx" "src/interface/wxWindows/widgets/creaButtonContainer/view/*.h" "src/interface/wxWindows/widgets/creaButtonContainer/controller/*.h" )
58   FILE(GLOB ${LIBRARY_NAME}_SOURCES_CBUTTONCONTAINER src/interface/wxWindows/widgets/creaButtonContainer/model/*.cxx src/interface/wxWindows/widgets/creaButtonContainer/view/*.cxx src/interface/wxWindows/widgets/creaButtonContainer/controller/*.cxx )
59
60   FILE(GLOB ${LIBRARY_NAME}_HEADERS_CPBUTTONCONTAINER "src/interface/wxWindows/widgets/creaPanelButtonContainer/*.h" )
61   FILE(GLOB ${LIBRARY_NAME}_SOURCES_CPBUTTONCONTAINER src/interface/wxWindows/widgets/creaPanelButtonContainer/*.cxx )  
62
63   FILE(GLOB ${LIBRARY_NAME}_HEADERS_UNDO_REDO "src/interface/wxWindows/widgets/imageUndoRedo/*.h")
64   FILE(GLOB ${LIBRARY_NAME}_SOURCES_UNDO_REDO  src/interface/wxWindows/widgets/imageUndoRedo/*.cxx )
65 #DFCH
66   FILE(GLOB ${LIBRARY_NAME}_HEADERS_MANUAL_CONTOUR "src/interface/wxWindows/widgets/manualContour/*.h")
67   FILE(GLOB ${LIBRARY_NAME}_SOURCES_MANUAL_CONTOUR src/interface/wxWindows/widgets/manualContour/*.cpp )
68
69   FILE(GLOB ${LIBRARY_NAME}_HEADERS_MANUAL_PAINT "src/interface/wxWindows/widgets/manualPaint/*.h")
70   FILE(GLOB ${LIBRARY_NAME}_SOURCES_MANUAL_PAINT src/interface/wxWindows/widgets/manualPaint/*.cpp src/interface/wxWindows/widgets/manualPaint/*.cxx )
71   # FILE(GLOB ${LIBRARY_NAME}_SOURCES_MANUAL_PAINT src/interface/wxWindows/widgets/manualPaint/*.cxx ) #DFCH
72
73   FILE(GLOB ${LIBRARY_NAME}_HEADERS_KERNEL "src/kernel/*.h")
74   FILE(GLOB ${LIBRARY_NAME}_SOURCES_KERNEL src/kernel/*.cxx src/kernel/*.cpp src/kernel/*.cc)
75
76 FILE(GLOB ${LIBRARY_NAME}_HEADERS_CUTMODULE src/CutModule/interface/*.h src/CutModule/kernel/*.h)
77   FILE(GLOB ${LIBRARY_NAME}_SOURCES_CUTMODULE src/CutModule/interface/*.cxx src/CutModule/kernel/*.cxx)
78
79 FILE(GLOB ${LIBRARY_NAME}_HEADERS_MARACASVISULIB_INCLUDE include/*.h )
80
81   SET ( ${LIBRARY_NAME}_HEADERS
82         ${${LIBRARY_NAME}_HEADERS_WXWIN}
83         ${${LIBRARY_NAME}_HEADERS_CONTOUR}
84         ${${LIBRARY_NAME}_HEADERS_ThresholdImageView}
85         ${${LIBRARY_NAME}_HEADERS_WIDGETS}
86         ${${LIBRARY_NAME}_HEADERS_PPLOTTER}
87         ${${LIBRARY_NAME}_HEADERS_MANUAL_CONTOUR}
88         ${${LIBRARY_NAME}_HEADERS_MANUAL_PAINT}
89         ${${LIBRARY_NAME}_HEADERS_MARACASVISULIB_INCLUDE}
90         ${${LIBRARY_NAME}_HEADERS_KERNEL}
91         ${${LIBRARY_NAME}_HEADERS_CUTMODULE}
92         ${${LIBRARY_NAME}_HEADERS_CBUTTONCONTAINER}
93         ${${LIBRARY_NAME}_HEADERS_CPBUTTONCONTAINER}
94         ${${LIBRARY_NAME}_HEADERS_UNDO_REDO}
95         
96   )
97   #----------------------------------------------------------------------------
98
99   #----------------------------------------------------------------------------
100   # LIBRARY SOURCES (TO BE COMPILED)
101   # EITHER LIST ALL .cxx, *.cpp, *.cc IN CURRENT DIR USING NEXT LINE:
102   #FILE(GLOB ${LIBRARY_NAME}_SOURCES *.cxx *.cpp *.cc)
103   # OR MANUALLY LIST YOUR FILES WITH NEXT COMMAND (WITHOUT EXTENSION)
104
105   SET ( ${LIBRARY_NAME}_SOURCES 
106         ${${LIBRARY_NAME}_SOURCES_WXWIN}
107         ${${LIBRARY_NAME}_SOURCES_CONTOUR}
108         ${${LIBRARY_NAME}_SOURCES_ThresholdImageView}
109         ${${LIBRARY_NAME}_SOURCES_WIDGETS}
110         ${${LIBRARY_NAME}_SOURCES_PPLOTTER}
111         ${${LIBRARY_NAME}_SOURCES_MANUAL_CONTOUR}
112         ${${LIBRARY_NAME}_SOURCES_MANUAL_PAINT}
113         ${${LIBRARY_NAME}_SOURCES_KERNEL}
114         ${${LIBRARY_NAME}_SOURCES_CUTMODULE}
115         ${${LIBRARY_NAME}_SOURCES_CBUTTONCONTAINER}
116         ${${LIBRARY_NAME}_SOURCES_CPBUTTONCONTAINER}
117         ${${LIBRARY_NAME}_SOURCES_UNDO_REDO}
118   )
119   #----------------------------------------------------------------------------
120 #jhcl-Start===========================================================================
121 #message(jhcl4${LIBIDO_LIBRARIES})
122 #jhcl-End===========================================================================
123
124   #----------------------------------------------------------------------------
125   # LIBRARY DEPENDENCIES (LIBRARIES TO LINK WITH)
126   SET ( ${LIBRARY_NAME}_LINK_LIBRARIES
127                 ${crea_LIBRARIES}
128         ${WXWIDGETS_LIBRARIES}
129         ${VTK_LIBRARIES}
130         ${ITK_LIBRARIES}
131 #        ${GDCM_LIBRARIES}
132     #    ${BOOST_LIBRARIES}
133         #jhcl-Start===========================================================================
134                 
135                 ${LIBIDO_LIBRARIES}
136                 ${CREA_LIBRARIES}
137         #${BOOST_LIBRARIES}
138         #jhcl-End===========================================================================
139                 #creaMaracasVisu_CutModule_interface
140
141
142              BaseVolumeRenderer
143              BaseSurfaceRenderer
144              KernelVolumeRenderer
145              KernelViewerWidgets
146              KernelSurfaceRenderer
147
148 #EED CM
149              #KernelVolumeRenderer
150 #EED             KernelViewerWidgets
151              #KernelSurfaceRenderer
152              #BaseSurfaceRenderer
153
154     )
155   #----------------------------------------------------------------------------
156
157   
158   #----------------------------------------------------------------------------
159   # MACRO WHICH DOES ALL THE JOB : BUILD AND INSTALL
160 #JHCL 
161   #CREA_ADD_LIBRARY( ${LIBRARY_NAME} )
162 #JHCL
163
164 # Ya esta hecho arriba
165 # SET(LIBRARY_NAME ******NOMBRE*******)
166
167   IF(CREA_VERBOSE_CMAKE)
168     MESSAGE(STATUS "** Creating library ${LIBRARY_NAME}")
169     MESSAGE(STATUS "   Headers  : ${${LIBRARY_NAME}_HEADERS}")
170     MESSAGE(STATUS "   Sources  : ${${LIBRARY_NAME}_SOURCES}")
171     MESSAGE(STATUS "   Link libs: ${${LIBRARY_NAME}_LINK_LIBRARIES}")
172   ENDIF(CREA_VERBOSE_CMAKE)
173
174
175
176   # CREATE THE TARGET
177   ADD_LIBRARY (${LIBRARY_NAME} ${${LIBRARY_NAME}_SHARED} ${${LIBRARY_NAME}_SOURCES} ${${LIBRARY_NAME}_HEADERS})
178
179   # LINK
180   TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${${LIBRARY_NAME}_LINK_LIBRARIES})
181
182  # Sets the settings for macro CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
183   SET(${LIBRARY_NAME}_INSTALL_FOLDER ${LIBRARY_NAME})
184
185   SET(${LIBRARY_NAME}_LIBRARIES 
186
187              BaseVolumeRenderer
188              BaseSurfaceRenderer
189              KernelVolumeRenderer
190              KernelViewerWidgets
191              KernelSurfaceRenderer
192              ${LIBRARY_NAME}
193        )
194
195 #  SET(${LIBRARY_NAME}_LIBRARIES ${LIBRARY_NAME}
196 #                               BaseVolumeRenderer
197 #                               BaseSurfaceRenderer
198 #                               GUIWxSurfaceRenderer
199 #                               GUIWxVolumeRenderer
200 #                               KernelViewerWidgets
201 #                               KernelVolumeRenderer
202 #                               KernelSurfaceRenderer   )
203
204
205 #  FILE(RELATIVE_PATH
206  #   ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
207  #   ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
208  #   )
209
210 SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
211 #lib/THIS_DIR/toto
212 #lib/THIS_DIR/other_headers
213     lib/maracasVisuLib/src
214         #${MARACAS_SOURCE_DIR}/src/axe3DVTK
215         #  ${MARACAS_SOURCE_DIR}/src/interface
216     lib/maracasVisuLib/src/kernel
217         #${MARACAS_SOURCE_DIR}/src/SnakeIsoContour+Deriche
218     lib/maracasVisuLib/src/interface/wxWindows
219     lib/maracasVisuLib/src/interface/wxWindows/Contour
220     lib/maracasVisuLib/src/interface/wxWindows/widgets
221     lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter
222         lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour
223         lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView
224         lib/GUI/Base/SurfaceRenderer
225         lib/GUI/Base/VolumeRenderer
226         lib/GUI/Qt/SurfaceRenderer
227         lib/GUI/Qt/Viewers
228         lib/GUI/Qt/VolumeRenderer
229         lib/GUI/Wx/SurfaceRenderer
230         lib/GUI/Wx/VolumeRenderer
231         lib/Kernel/VTKObjects/SurfaceRenderer
232         lib/Kernel/VTKObjects/ViewerWidgets
233         lib/Kernel/VTKObjects/VolumeRenderer
234         lib/maracasVisuLib/../../../
235 )
236
237
238 IF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
239   SET(CILFC_EXECUTABLE_OUTPUT_REL_PATH ".")
240 ELSE ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
241   FILE(RELATIVE_PATH 
242     CILFC_EXECUTABLE_OUTPUT_REL_PATH
243     ${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH})
244 ENDIF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
245
246 IF(UNIX)
247   SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
248   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS ${CREAMARACASVISU_LIB_PATH} )
249 ELSE(UNIX)
250   SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS
251     ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
252   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS bin)
253 ENDIF(UNIX)
254   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS include/${LIBRARY_NAME})
255   SET(${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE FALSE)
256 # SET(${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE
257 #   ${PROJECT_SOURCE_DIR}/src/AdditionalcreaImageIOConfig.cmake.in)
258 # SET(${LIBRARY_NAME}_ADDITIONAL_USE_FILE
259 #  ${PROJECT_SOURCE_DIR}/src/AdditionalUsecreaImageIO.cmake.in)
260
261 # Invoke the advanced macro
262
263
264 CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
265
266 # INSTALLS LIBRARY
267 INSTALL(
268   FILES ${${LIBRARY_NAME}_HEADERS}
269   DESTINATION ${${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS}
270   )
271 IF(WIN32)
272   INSTALL(
273     TARGETS ${LIBRARY_NAME}
274     DESTINATION bin)
275 ELSE(WIN32)
276   INSTALL(
277     TARGETS ${LIBRARY_NAME}
278     DESTINATION ${CREAMARACASVISU_LIB_PATH})
279 ENDIF(WIN32)
280   
281   #----------------------------------------------------------------------------
282
283   #---------------------------------------------------------------------------
284 ENDIF ( BUILD_${LIBRARY_NAME} )
285
286 ADD_SUBDIRECTORY(src)