]> Creatis software - creaImageIO.git/blob - src/CMakeLists.txt
#2458 creaImageIO Feature New Normal - UnMosaic Images SimpleView Gimick
[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 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
289   ${crea_LIBRARIES}
290   ${creaBruker_LIBRARIES}
291   ${WXWIDGETS_LIBRARIES}
292   ${VTK_LIBRARIES}
293   ${GDCM_LIBRARIES}
294   ${BOOST_LIBRARIES}
295   ${ITK_LIBRARIES}
296   sqlite3)
297 ELSE(NOT USE_XERCES)
298 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
299   ${crea_LIBRARIES}
300   ${creaBruker_LIBRARIES}
301   ${WXWIDGETS_LIBRARIES}
302   ${VTK_LIBRARIES}
303   ${GDCM_LIBRARIES}
304   ${BOOST_LIBRARIES}
305   ${XERCES_LIBRARIES}
306   sqlite3)  
307 ENDIF(NOT USE_XERCES)
308   
309  
310 #----------------------------------------------------------------------------
311 # INSTALLS LIBRARY
312 FILE(GLOB HEADERS "*.h" "*.txx")
313 INSTALL(
314   FILES ${HEADERS}
315   DESTINATION include/${LIBRARY_NAME}
316   )
317   
318
319 SET(CREAIMAGEIO_LIB_PATH ${CMAKE_CREA_LIB_PATH} )
320
321 INSTALL(
322   TARGETS ${LIBRARY_NAME} 
323   DESTINATION ${CREAIMAGEIO_LIB_PATH})
324
325      # Sets the settings for macro CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
326   SET(${LIBRARY_NAME}_INSTALL_FOLDER ${LIBRARY_NAME})
327   SET(${LIBRARY_NAME}_LIBRARIES ${LIBRARY_NAME} )
328   
329 #  FILE(RELATIVE_PATH 
330 #    ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS 
331 #    ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
332 #    )
333 SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
334     src
335     win32
336 )
337
338
339   IF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
340     SET(CILFC_EXECUTABLE_OUTPUT_REL_PATH ".")
341   ELSE ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
342     FILE(RELATIVE_PATH 
343       CILFC_EXECUTABLE_OUTPUT_REL_PATH
344       ${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH})
345   ENDIF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
346
347
348
349   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS ${CMAKE_CREA_LIB_PATH} )
350
351   IF(UNIX)
352     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
353       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
354   ELSE(UNIX)
355     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
356       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
357   ENDIF(UNIX)
358   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS include/${LIBRARY_NAME})
359   
360   SET(${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE TRUE)
361 SET(${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE 
362   ${PROJECT_SOURCE_DIR}/src/Additional${LIBRARY_NAME}Config.cmake.in)
363 SET(${LIBRARY_NAME}_ADDITIONAL_USE_FILE 
364   ${PROJECT_SOURCE_DIR}/src/AdditionalUse${LIBRARY_NAME}.cmake.in)
365
366   # Invoke the advanced macro
367   CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
368 IF (WIN32)
369         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
370         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/bin/share/creaImageIO)
371 ELSE (WIN32)
372         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
373         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/share/creaImageIO)
374 ENDIF (WIN32)
375 CREA_CPDIR(${INPUT_DATA_DIR} ${OUTPUT_DATA_DIR})
376
377   
378 #CREA_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
379 #-----------------------------------------------------------------------------
380
381 OPTION( BUILD_DOXYGEN_DOC "Build doxygen doc ?" OFF)
382 IF(BUILD_DOXYGEN_DOC)
383   ADD_SUBDIRECTORY(doxygen)
384 ENDIF(BUILD_DOXYGEN_DOC)
385
386 INCLUDE_DIRECTORIES(
387 #  ${PROJECT_BINARY_DIR}
388   ${PROJECT_SOURCE_DIR}/src
389   )