]> Creatis software - creaImageIO.git/blob - src/CMakeLists.txt
27d93ce706eedc70daee54e54cdcdd8f1e0a73a9
[creaImageIO.git] / src / CMakeLists.txt
1 SET(LIBRARY_NAME creaImageIO)
2
3 #-----------------------------------------
4 #SOURCES
5 FILE(GLOB SOURCES_CREAIMAGEIO  
6   # SQLite 
7   CppSQLite3.cpp
8   # 
9   creaImageIOGimmick.cpp
10   creaImageIOSynchron.cpp
11   creaImageIOPACSConnection.cpp
12
13   # Abstract views
14   creaImageIOTreeView.cpp
15
16   # settings
17   creaImageIOSettings.cpp
18   creaImageIOGimmickView.cpp
19   )
20 #--------------------------------------------
21
22 IF(USE_WXWIDGETS)
23          FILE(GLOB SOURCES_CREAIMAGEIO_DIALOG  
24            creaImageIOGimmickReaderDialog.cpp
25            )
26         SOURCE_GROUP("Source Files\\Reader Dialog" FILES ${SOURCES_CREAIMAGEIO_DIALOG})
27 ENDIF(USE_WXWIDGETS)
28
29 #--------------------------------------------
30  # Attributed tree data structure
31 FILE(GLOB SOURCES_CREAIMAGEIO_TREE
32           creaImageIOTree.cpp
33           creaImageIOTreeAttributeDescriptor.cpp
34           creaImageIOTreeDescriptor.cpp
35           creaImageIOTreeNode.cpp
36           creaImageIOTreeLevelDescriptor.cpp
37             # Tree Handlers
38           creaImageIOTreeHandler.cpp
39           creaImageIOTreeHandlerImageAdder.cpp
40           creaImageIOSQLiteTreeHandler.cpp
41           creaImageIOOutputModel.cpp
42           )
43
44 #--------------------------------------------
45  # Image Readers
46 IF(USE_GDCM)
47          FILE(GLOB SOURCES_CREAIMAGEIO_IMG_DICOM_READER
48                         creaImageIODicomImageReader.cpp
49                         )
50 ENDIF(USE_GDCM)
51           
52 IF(USE_GDCM2)
53          FILE(GLOB SOURCES_CREAIMAGEIO_IMG_DICOM_READER
54                         creaImageIODicomImageReader2.cpp
55                         creaImageIODicomScanner.cpp
56                         )
57 ENDIF(USE_GDCM2)
58
59 IF (USE_WXWIDGETS)
60         FILE(GLOB SOURCES_CREAIMAGEIO_MULTI_IMG_READER   creaImageIOMultiThreadImageReader.cpp)
61 ELSEIF(USE_QT4)
62         FILE(GLOB SOURCES_CREAIMAGEIO_MULTI_IMG_READER   creaImageIOQMultiThreadImageReader.cpp)
63 ENDIF()
64
65 FILE(GLOB SOURCES_CREAIMAGEIO_IMG_READER
66           creaImageIOSimpleView.cpp
67           creaImageIOAbstractImageReader.cpp
68           creaImageIOImageReader.cpp
69           creaImageIOUltrasonixImageReader.cpp
70           creaImageIOVtkImageReader.cpp
71           ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER}
72           ${SOURCES_CREAIMAGEIO_MULTI_IMG_READER}
73           )
74 IF(USE_ITK)
75 FILE(GLOB SOURCES_CREAIMAGEIO_ITK_DLG
76         creaImageIOWxIsimpleDlg.h
77         creaImageIOWxIsimpleDlg.hpp
78         creaImageIOWxAnySimpleDlg.h
79         creaImageIOWxAnySimpleDlg.cpp
80         )
81 ENDIF(USE_ITK)
82           
83 #--------------------------------------------
84 # The wxWidgets-based components
85 if (USE_WXWIDGETS)
86         FILE(GLOB SOURCES_CREAIMAGEIO_WX
87                   creaImageIOWxSimpleDlg.cpp
88                   creaImageIOWxAttributeSelectionPanel.cpp
89                   creaImageIOWxCustomizeConfigPanel.cpp
90                   creaImageIOWxDescriptorPanel.cpp
91                   creaImageIOWxEditFieldsPanel.cpp
92                   creaImageIOWxExportDlg.cpp
93                   creaImageIOWxDumpPanel.cpp
94                   creaImageIOWxGimmickView.cpp
95                   creaImageIOWxGimmickReaderDialog.cpp
96                   creaImageIOWxGimmickFrame.cpp
97                   creaImageIOWxGimmickPanel.cpp
98                   creaImageIOWxGimmickTools.cpp
99                   creaImageIOWxListenerPanel.cpp
100                   creaImageIOWxPACSConnectionPanel.cpp
101                   creaImageIOWxTreeView.cpp
102                   creaImageIOWxOutputDlg.cpp
103                   #  Viewer
104                   creaImageIOWxViewer.cpp
105                   creaImageIOExternalGimmick.cpp
106                   BlockScopeWxApp.cpp
107                   creaImageIOListener.cpp
108                   )
109         SOURCE_GROUP("Source Files\\GUI" FILES ${SOURCES_CREAIMAGEIO_WX})
110 endif(USE_WXWIDGETS)
111
112 #--------------------------------------------
113 # USE QT, need to transform files (moc mechanism)
114 IF (USE_QT4)
115         #cpp
116         FILE(GLOB QT_CPP 
117                 QtGUI/*.cpp 
118                 QtGUI/*.cxx
119                 )
120         
121         # headers
122         SET(QT4_HEADERS_TO_WRAP
123                 QtGUI/creaimageioqtreeview.h
124                 QtGUI/creaImageIOQTGimmickReaderDialog.h
125                 )
126         
127
128         QT4_WRAP_CPP(MOC_SOURCES 
129                         ${QT4_HEADERS_TO_WRAP}
130                         )
131         SOURCE_GROUP("Source Files\\GUI" FILES 
132                         ${MOC_SOURCES}
133                     )
134   
135   
136         # UI
137         FILE(GLOB UI_FILES QtGUI/*.ui)
138         QT4_WRAP_UI(UI_SOURCES ${UI_FILES})
139         #SOURCE_GROUP("UI Files" FILES ${UI_FILES})
140         SOURCE_GROUP("Source Files\\GUI" FILES ${UI_SOURCES})
141 ENDIF(USE_QT4)
142
143
144 IF(USE_XERCES)
145         FILE(GLOB SOURCES_CREAIMAGEIO_OUTPUT
146                   creaImageIOOutputModel.cpp
147                   creaImageIOOutputModelParser.cpp
148                   )
149         SOURCE_GROUP("Source Files\\Output" FILES ${SOURCES_CREAIMAGEIO_OUTPUT})         
150 ENDIF(USE_XERCES)
151
152
153
154
155 # Header Files    
156 FILE(GLOB HEADER_CREAIMAGEIO creaImageIOImagePointerHolder.h  CppSQLite3.h)
157 #*.h)
158 FILE(GLOB SOURCES_CREAIMAGEIO_PACS PACS/*.cpp)
159 FILE(GLOB HEADER_CREAIMAGEIO_PACS PACS/*.h)
160
161
162 SOURCE_GROUP("Source Files" FILES ${SOURCES_CREAIMAGEIO})
163 SOURCE_GROUP("Header Files" FILES ${HEADER_CREAIMAGEIO})
164 if(BUILD_CREA_PACS)
165         SOURCE_GROUP("Source Files\\PACS" FILES ${SOURCES_CREAIMAGEIO_PACS})
166         SOURCE_GROUP("Header Files\\PACS" FILES ${HEADER_CREAIMAGEIO_PACS})
167 endif(BUILD_CREA_PACS)
168 SOURCE_GROUP("Source Files\\Readers" FILES ${SOURCES_CREAIMAGEIO_IMG_READER}
169                                                                                         ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER})
170 SOURCE_GROUP("Source Files\\Tree" FILES ${SOURCES_CREAIMAGEIO_TREE})
171
172 SOURCE_GROUP("Source Files\\ITK" FILES ${SOURCES_CREAIMAGEIO_ITK_DLG})
173
174
175 IF(USE_WXWIDGETS)
176 SET( GUI_SRCS
177          ${SOURCES_CREAIMAGEIO_WX}
178          ${SOURCES_CREAIMAGEIO_DIALOG}
179          )
180 ELSE(USE_WXWIDGETS)
181 SET( GUI_SRCS
182          ${QT_CPP}
183          ${UI_SOURCES}
184          ${MOC_SOURCES}
185          )
186 ENDIF(USE_WXWIDGETS)
187 SET( PRIMITIVE_SRCS
188  ${SOURCES_CREAIMAGEIO}
189  ${HEADER_CREAIMAGEIO}
190  ${SOURCES_CREAIMAGEIO_IMG_READER}
191  ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER}
192  ${GUI_SRCS}
193  ${SOURCES_CREAIMAGEIO_TREE}
194  ${SOURCES_CREAIMAGEIO_ITK_DLG}
195 )
196
197
198 #if ( ${CMAKE_EXE_LINKER_FLAGS} MATCHES "message:x64")message("charlie ${CMAKE_SYSTEM_PROCESSOR}")endif()
199
200 if( BUILD_CREA_PACS)
201         SET (SRCS
202                 ${PRIMITIVE_SRCS}
203                 ${SOURCES_CREAIMAGEIO_PACS}
204                 ${HEADER_CREAIMAGEIO_PACS}
205                 )
206 else (BUILD_CREA_PACS)
207 IF(USE_XERCES)
208         SET (SRCS
209                 ${PRIMITIVE_SRCS}
210                 ${SOURCES_CREAIMAGEIO_OUTPUT}
211                 )
212 ELSE(USE_XERCES)
213         SET (SRCS
214                 ${PRIMITIVE_SRCS}
215                 )
216 ENDIF(USE_XERCES)
217 endif (BUILD_CREA_PACS)
218
219 OPTION(${LIBRARY_NAME}_BUILD_SHARED 
220   "Build ${LIBRARY_NAME} as a shared library (dynamic) ?" ON)
221 IF (${LIBRARY_NAME}_BUILD_SHARED)
222   SET(CREAIMAGEIO_BUILD_SHARED SHARED)
223   crea_DEFINE(CREAIMAGEIO_BUILD_SHARED)
224 ENDIF(${LIBRARY_NAME}_BUILD_SHARED)
225
226 crea_DEFINE(CREAIMAGEIO_EXPORT_SYMBOLS)
227
228 ADD_LIBRARY(${LIBRARY_NAME} ${CREAIMAGEIO_BUILD_SHARED} ${SRCS})
229
230 IF(USE_QT4)
231 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
232       ${QT_LIBRARIES})
233 ENDIF(USE_QT4)
234
235 IF(USE_WXWIDGETS)
236 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
237       ${WXWIDGETS_LIBRARIES})
238 ENDIF(USE_WXWIDGETS)
239
240
241 IF (NOT USE_XERCES)
242 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
243   ${crea_LIBRARIES}
244   ${creaBruker_LIBRARIES}
245   ${WXWIDGETS_LIBRARIES}
246   ${VTK_LIBRARIES}
247   ${GDCM_LIBRARIES}
248   ${BOOST_LIBRARIES}
249   ${ITK_LIBRARIES}
250   sqlite3)
251 ELSE(NOT USE_XERCES)
252 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
253   ${crea_LIBRARIES}
254   ${creaBruker_LIBRARIES}
255   ${WXWIDGETS_LIBRARIES}
256   ${VTK_LIBRARIES}
257   ${GDCM_LIBRARIES}
258   ${BOOST_LIBRARIES}
259   ${XERCES_LIBRARIES}
260   sqlite3)  
261 ENDIF(NOT USE_XERCES)
262   
263  
264 #----------------------------------------------------------------------------
265 # INSTALLS LIBRARY
266 FILE(GLOB HEADERS "*.h" "*.txx")
267 INSTALL(
268   FILES ${HEADERS}
269   DESTINATION include/${LIBRARY_NAME}
270   )
271   
272
273 SET(CREAIMAGEIO_LIB_PATH ${CMAKE_CREA_LIB_PATH} )
274
275 INSTALL(
276   TARGETS ${LIBRARY_NAME} 
277   DESTINATION ${CREAIMAGEIO_LIB_PATH})
278
279      # Sets the settings for macro CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
280   SET(${LIBRARY_NAME}_INSTALL_FOLDER ${LIBRARY_NAME})
281   SET(${LIBRARY_NAME}_LIBRARIES ${LIBRARY_NAME})
282   
283 #  FILE(RELATIVE_PATH 
284 #    ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS 
285 #    ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
286 #    )
287 SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
288     src
289     win32
290 )
291
292
293   IF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
294     SET(CILFC_EXECUTABLE_OUTPUT_REL_PATH ".")
295   ELSE ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
296     FILE(RELATIVE_PATH 
297       CILFC_EXECUTABLE_OUTPUT_REL_PATH
298       ${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH})
299   ENDIF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
300
301
302
303   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS ${CMAKE_CREA_LIB_PATH} )
304
305   IF(UNIX)
306     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
307       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
308   ELSE(UNIX)
309     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
310       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
311   ENDIF(UNIX)
312   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS include/${LIBRARY_NAME})
313   
314   SET(${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE TRUE)
315 SET(${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE 
316   ${PROJECT_SOURCE_DIR}/src/Additional${LIBRARY_NAME}Config.cmake.in)
317 SET(${LIBRARY_NAME}_ADDITIONAL_USE_FILE 
318   ${PROJECT_SOURCE_DIR}/src/AdditionalUse${LIBRARY_NAME}.cmake.in)
319
320   # Invoke the advanced macro
321   CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
322 IF (WIN32)
323         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
324         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/bin/share/creaImageIO)
325 ELSE (WIN32)
326         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
327         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/share/creaImageIO)
328 ENDIF (WIN32)
329 CREA_CPDIR(${INPUT_DATA_DIR} ${OUTPUT_DATA_DIR})
330
331   
332 #CREA_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
333 #-----------------------------------------------------------------------------
334
335 OPTION( BUILD_DOXYGEN_DOC "Build doxygen doc ?" OFF)
336 IF(BUILD_DOXYGEN_DOC)
337   ADD_SUBDIRECTORY(doxygen)
338 ENDIF(BUILD_DOXYGEN_DOC)
339
340 INCLUDE_DIRECTORIES(
341 #  ${PROJECT_BINARY_DIR}
342   ${PROJECT_SOURCE_DIR}/src
343   )