]> Creatis software - creaImageIO.git/blob - src/CMakeLists.txt
#3218 creaImageIO Feature New Normal - vtk8itk4wx3-mingw64
[creaImageIO.git] / src / CMakeLists.txt
1 # ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
4 #                        pour la Santé)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and 
10 #  abiding by the rules of distribution of free software. You can  use, 
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
12 #  license as circulated by CEA, CNRS and INRIA at the following URL 
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability. 
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------
25
26 SET(LIBRARY_NAME creaImageIO)
27
28 #-----------------------------------------
29 #SOURCES
30 FILE(GLOB SOURCES_CREAIMAGEIO  
31   # SQLite 
32   CppSQLite3.cpp
33   # 
34   creaImageIOGimmick.cpp
35   creaImageIOSynchron.cpp
36   creaImageIOPACSConnection.cpp
37
38   # Abstract views
39   creaImageIOTreeView.cpp
40
41   # settings
42   creaImageIOSettings.cpp
43   creaImageIOGimmickView.cpp
44   )
45 #--------------------------------------------
46
47 IF(USE_WXWIDGETS)
48          FILE(GLOB SOURCES_CREAIMAGEIO_DIALOG  
49            creaImageIOGimmickReaderDialog.cpp
50            )
51         SOURCE_GROUP("Source Files\\Reader Dialog" FILES ${SOURCES_CREAIMAGEIO_DIALOG})
52 ENDIF(USE_WXWIDGETS)
53
54 #--------------------------------------------
55  # Attributed tree data structure
56 FILE(GLOB SOURCES_CREAIMAGEIO_TREE
57           creaImageIOTree.cpp
58           creaImageIOTreeAttributeDescriptor.cpp
59           creaImageIOTreeDescriptor.cpp
60           creaImageIOTreeNode.cpp
61           creaImageIOTreeLevelDescriptor.cpp
62             # Tree Handlers
63           creaImageIOTreeHandler.cpp
64           creaImageIOTreeHandlerImageAdder.cpp
65           creaImageIOSQLiteTreeHandler.cpp
66           creaImageIOOutputModel.cpp
67           )
68
69 #--------------------------------------------
70  # Image Readers
71 IF(USE_GDCM)
72          FILE(GLOB SOURCES_CREAIMAGEIO_IMG_DICOM_READER
73                         creaImageIODicomImageReader.cpp
74                         )
75 ENDIF(USE_GDCM)
76           
77 IF(USE_GDCM2)
78          FILE(GLOB SOURCES_CREAIMAGEIO_IMG_DICOM_READER
79                         creaImageIODicomImageReader2.cpp
80                         creaImageIODicomScanner.cpp
81                         )
82 ENDIF(USE_GDCM2)
83
84 IF (USE_WXWIDGETS)
85         FILE(GLOB SOURCES_CREAIMAGEIO_MULTI_IMG_READER   creaImageIOMultiThreadImageReader.cpp)
86 #ELSEIF(USE_QT4)
87         #FILE(GLOB SOURCES_CREAIMAGEIO_MULTI_IMG_READER   creaImageIOQMultiThreadImageReader.cpp)
88 ENDIF()
89
90 FILE(GLOB SOURCES_CREAIMAGEIO_IMG_READER
91           creaImageIOSimpleView.cpp
92           creaImageIOUnMosaicVtkImageData.cpp
93           creaImageIOAbstractImageReader.cpp
94           creaImageIOImageReader.cpp
95           creaImageIOUltrasonixImageReader.cpp
96           creaImageIOVtkImageReader.cpp
97           ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER}
98           ${SOURCES_CREAIMAGEIO_MULTI_IMG_READER}
99           )
100 IF(USE_ITK)
101 FILE(GLOB SOURCES_CREAIMAGEIO_ITK_DLG
102         creaImageIOWxIsimpleDlg.h
103         creaImageIOWxIsimpleDlg.hpp
104         creaImageIOWxAnySimpleDlg.h
105         creaImageIOWxAnySimpleDlg.cpp
106         )
107 ENDIF(USE_ITK)
108           
109 #--------------------------------------------
110 # The wxWidgets-based components
111 if (USE_WXWIDGETS)
112         FILE(GLOB SOURCES_CREAIMAGEIO_WX
113                   creaImageIOWxSimpleDlg.cpp
114                   creaImageIOWxAttributeSelectionPanel.cpp
115                   creaImageIOWxCustomizeConfigPanel.cpp
116                   creaImageIOWxDescriptorPanel.cpp
117                   creaImageIOWxEditFieldsPanel.cpp
118                   creaImageIOWxExportDlg.cpp
119                   creaImageIOWxDumpPanel.cpp
120                   creaImageIOWxGimmickView.cpp
121                   creaImageIOWxGimmickReaderDialog.cpp
122                   creaImageIOWxGimmickFrame.cpp
123                   creaImageIOWxGimmickPanel.cpp
124                   creaImageIOWxGimmickTools.cpp
125                   creaImageIOWxListenerPanel.cpp
126                   creaImageIOWxPACSConnectionPanel.cpp
127                   creaImageIOWxTreeView.cpp
128                   creaImageIOWxOutputDlg.cpp
129                   #  Viewer
130                   creaImageIOWxViewer.cpp
131                   creaImageIOExternalGimmick.cpp
132                   BlockScopeWxApp.cpp
133                   creaImageIOListener.cpp
134                   )
135         SOURCE_GROUP("Source Files\\GUI" FILES ${SOURCES_CREAIMAGEIO_WX})
136         
137         IF(USE_ITK)
138 FILE(GLOB SOURCES_CREAIMAGEIO_ITK_DLG
139         creaImageIOWxIsimpleDlg.h
140         creaImageIOWxIsimpleDlg.hpp
141         creaImageIOWxAnySimpleDlg.h
142         creaImageIOWxAnySimpleDlg.cpp
143         )
144 ENDIF(USE_ITK)
145           
146 endif(USE_WXWIDGETS)
147
148
149
150
151 #--------------------------------------------
152 # USE QT, need to transform files (moc mechanism)
153
154 IF (USE_QT4)
155
156 #ADD_SUBDIRECTORY(Qt)
157         # UI
158         FILE(GLOB UI_FILES Qt/*.ui)
159         QT4_WRAP_UI(UI_SOURCES ${UI_FILES})
160         SOURCE_GROUP("Source Files\\UI Files" FILES ${UI_FILES})
161         SOURCE_GROUP("Source Files\\Qt Generated Files" FILES ${UI_SOURCES})
162
163         #cpp
164         FILE(GLOB QT_CPP Qt/*.cpp
165                 #creaImageIOQtGimmickReaderDialog.cpp 
166                 )
167         
168         # headers
169         FILE(GLOB QT4_HEADERS_TO_WRAP Qt/*.h
170                 #creaImageIOQtGimmickReaderDialog.h
171                 )
172         # UI
173         #       FILE(GLOB UI_FILES *.ui)
174         #   QT4_WRAP_UI(UI_SOURCES ${UI_FILES})
175         # SOURCE_GROUP("UI Files" FILES ${UI_FILES})
176         # SOURCE_GROUP("Qt Generated Files" FILES ${UI_SOURCES})
177 #       FILE(GLOB UI_FILES creaImageIOQtGimmickReaderDialog.ui)
178 #       QT4_WRAP_UI(UI_SOURCES_H ${UI_FILES} OPTIONS -o ${PROJECT_BINARY_DIR}/src)
179          QT4_WRAP_CPP(QT_MOC_CPP ${QT4_HEADERS_TO_WRAP})
180   
181    # FILE(GLOB ${LIBRARY_NAME}_HEADERS "*.h" "*.txx" "${PROJECT_BINARY_DIR}/src/*.h")
182         # MEssage(STATUS" qt files = ${QT_MOC_CPP}")
183          SOURCE_GROUP("Source Files\\GUI" FILES ${QT_MOC_CPP} ${QT_CPP} )
184         # INCLUDE_DIRECTORIES ( ${PROJECT_BINARY_DIR})
185         SOURCE_GROUP("Source Files\\GUI" FILES ${UI_SOURCES_H} ${UI_FILES})
186         SOURCE_GROUP("Header Files" FILES ${QT4_HEADERS_TO_WRAP})
187 ENDIF(USE_QT4)
188
189 IF(USE_XERCES)
190         FILE(GLOB SOURCES_CREAIMAGEIO_OUTPUT
191                   creaImageIOOutputModel.cpp
192                   creaImageIOOutputModelParser.cpp
193                   )
194         SOURCE_GROUP("Source Files\\Output" FILES ${SOURCES_CREAIMAGEIO_OUTPUT})         
195 ENDIF(USE_XERCES)
196
197
198
199
200 # Header Files    
201 FILE(GLOB HEADER_CREAIMAGEIO creaImageIOImagePointerHolder.h  CppSQLite3.h)
202 #*.h)
203 FILE(GLOB SOURCES_CREAIMAGEIO_PACS PACS/*.cpp)
204 FILE(GLOB HEADER_CREAIMAGEIO_PACS PACS/*.h)
205
206 FILE(GLOB QT4_HEADERS           creaImageIOQtGimmickReaderDialog.h              )
207 MEssage(STATUS" qt files = ${QT4_HEADERS}")
208 SOURCE_GROUP("Source Files" FILES ${SOURCES_CREAIMAGEIO})
209 SOURCE_GROUP("Header Files" FILES ${HEADER_CREAIMAGEIO} ${QT4_HEADERS})
210 if(BUILD_CREA_PACS)
211         SOURCE_GROUP("Source Files\\PACS" FILES ${SOURCES_CREAIMAGEIO_PACS})
212         SOURCE_GROUP("Header Files\\PACS" FILES ${HEADER_CREAIMAGEIO_PACS})
213 endif(BUILD_CREA_PACS)
214 SOURCE_GROUP("Source Files\\Readers" FILES ${SOURCES_CREAIMAGEIO_IMG_READER}
215                                                                                         ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER})
216 SOURCE_GROUP("Source Files\\Tree" FILES ${SOURCES_CREAIMAGEIO_TREE})
217
218 SOURCE_GROUP("Source Files\\ITK" FILES ${SOURCES_CREAIMAGEIO_ITK_DLG})
219
220
221 IF(USE_WXWIDGETS)
222 SET( GUI_SRCS
223          ${SOURCES_CREAIMAGEIO_WX}
224          ${SOURCES_CREAIMAGEIO_DIALOG}
225          )
226 ELSE(USE_WXWIDGETS)
227 SET( GUI_SRCS
228          ${QT_CPP}
229          ${UI_SOURCES}
230          ${QT_MOC_CPP}
231          )
232 ENDIF(USE_WXWIDGETS)
233 SET( PRIMITIVE_SRCS
234  ${SOURCES_CREAIMAGEIO}
235  ${HEADER_CREAIMAGEIO}
236  ${SOURCES_CREAIMAGEIO_IMG_READER}
237  ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER}
238  ${GUI_SRCS}
239  ${SOURCES_CREAIMAGEIO_TREE}
240  ${SOURCES_CREAIMAGEIO_ITK_DLG}
241 )
242
243
244 #if ( ${CMAKE_EXE_LINKER_FLAGS} MATCHES "message:x64")message("charlie ${CMAKE_SYSTEM_PROCESSOR}")endif()
245
246 if( BUILD_CREA_PACS)
247         SET (SRCS
248                 ${PRIMITIVE_SRCS}
249                 ${SOURCES_CREAIMAGEIO_PACS}
250                 ${HEADER_CREAIMAGEIO_PACS}
251                 )
252 else (BUILD_CREA_PACS)
253 IF(USE_XERCES)
254         SET (SRCS
255                 ${PRIMITIVE_SRCS}
256                 ${SOURCES_CREAIMAGEIO_OUTPUT}
257                 )
258 ELSE(USE_XERCES)
259         SET (SRCS
260                 ${PRIMITIVE_SRCS}
261                 )
262 ENDIF(USE_XERCES)
263 endif (BUILD_CREA_PACS)
264
265 OPTION(${LIBRARY_NAME}_BUILD_SHARED 
266   "Build ${LIBRARY_NAME} as a shared library (dynamic) ?" ON)
267 IF (${LIBRARY_NAME}_BUILD_SHARED)
268   SET(CREAIMAGEIO_BUILD_SHARED SHARED)
269   crea_DEFINE(CREAIMAGEIO_BUILD_SHARED)
270 ENDIF(${LIBRARY_NAME}_BUILD_SHARED)
271
272 crea_DEFINE(CREAIMAGEIO_EXPORT_SYMBOLS)
273
274 ADD_LIBRARY(${LIBRARY_NAME} ${CREAIMAGEIO_BUILD_SHARED} ${SRCS})
275
276 IF(USE_QT4)
277 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
278       ${QT_LIBRARIES})
279 ENDIF(USE_QT4)
280
281 IF(USE_WXWIDGETS)
282 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
283       ${WXWIDGETS_LIBRARIES})
284 ENDIF(USE_WXWIDGETS)
285
286
287 IF (NOT USE_XERCES)
288
289 message("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
290 message(${VTK_LIBRARIES})
291
292 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
293   ${crea_LIBRARIES}
294   ${creaBruker_LIBRARIES}
295   ${WXWIDGETS_LIBRARIES}
296   ${VTK_LIBRARIES}
297   ${GDCM_LIBRARIES}
298   ${BOOST_LIBRARIES}
299   ${ITK_LIBRARIES}
300   sqlite3)
301 ELSE(NOT USE_XERCES)
302 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
303   ${crea_LIBRARIES}
304   ${creaBruker_LIBRARIES}
305   ${WXWIDGETS_LIBRARIES}
306   ${VTK_LIBRARIES}
307   ${GDCM_LIBRARIES}
308   ${BOOST_LIBRARIES}
309   ${XERCES_LIBRARIES}
310   sqlite3)  
311 ENDIF(NOT USE_XERCES)
312   
313  
314 #----------------------------------------------------------------------------
315 # INSTALLS LIBRARY
316 FILE(GLOB HEADERS "*.h" "*.txx")
317 INSTALL(
318   FILES ${HEADERS}
319   DESTINATION include/${LIBRARY_NAME}
320   )
321   
322
323 SET(CREAIMAGEIO_LIB_PATH ${CMAKE_CREA_LIB_PATH} )
324
325 INSTALL(
326   TARGETS ${LIBRARY_NAME} 
327   DESTINATION ${CREAIMAGEIO_LIB_PATH})
328
329      # Sets the settings for macro CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
330   SET(${LIBRARY_NAME}_INSTALL_FOLDER ${LIBRARY_NAME})
331   SET(${LIBRARY_NAME}_LIBRARIES ${LIBRARY_NAME} )
332   
333 #  FILE(RELATIVE_PATH 
334 #    ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS 
335 #    ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
336 #    )
337 SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
338     src
339     win32
340 )
341
342
343   IF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
344     SET(CILFC_EXECUTABLE_OUTPUT_REL_PATH ".")
345   ELSE ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
346     FILE(RELATIVE_PATH 
347       CILFC_EXECUTABLE_OUTPUT_REL_PATH
348       ${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH})
349   ENDIF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
350
351
352
353   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS ${CMAKE_CREA_LIB_PATH} )
354
355   IF(UNIX)
356     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
357       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
358   ELSE(UNIX)
359     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
360       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
361   ENDIF(UNIX)
362   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS include/${LIBRARY_NAME})
363   
364   SET(${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE TRUE)
365 SET(${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE 
366   ${PROJECT_SOURCE_DIR}/src/Additional${LIBRARY_NAME}Config.cmake.in)
367 SET(${LIBRARY_NAME}_ADDITIONAL_USE_FILE 
368   ${PROJECT_SOURCE_DIR}/src/AdditionalUse${LIBRARY_NAME}.cmake.in)
369
370   # Invoke the advanced macro
371   CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
372 IF (WIN32)
373         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
374         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/bin/share/creaImageIO)
375 ELSE (WIN32)
376         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
377         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/share/creaImageIO)
378 ENDIF (WIN32)
379 CREA_CPDIR(${INPUT_DATA_DIR} ${OUTPUT_DATA_DIR})
380
381   
382 #CREA_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
383 #-----------------------------------------------------------------------------
384
385 OPTION( BUILD_DOXYGEN_DOC "Build doxygen doc ?" OFF)
386 IF(BUILD_DOXYGEN_DOC)
387   ADD_SUBDIRECTORY(doxygen)
388 ENDIF(BUILD_DOXYGEN_DOC)
389
390 INCLUDE_DIRECTORIES(
391 #  ${PROJECT_BINARY_DIR}
392   ${PROJECT_SOURCE_DIR}/src
393   )