]> Creatis software - creaImageIO.git/blob - src/CMakeLists.txt
convert Analyze files to vtkImageData
[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         )
79 ENDIF(USE_ITK)
80           
81 #--------------------------------------------
82 # The wxWidgets-based components
83 if (USE_WXWIDGETS)
84         FILE(GLOB SOURCES_CREAIMAGEIO_WX
85                   creaImageIOWxSimpleDlg.cpp
86                   creaImageIOWxAttributeSelectionPanel.cpp
87                   creaImageIOWxCustomizeConfigPanel.cpp
88                   creaImageIOWxDescriptorPanel.cpp
89                   creaImageIOWxEditFieldsPanel.cpp
90                   creaImageIOWxExportDlg.cpp
91                   creaImageIOWxDumpPanel.cpp
92                   creaImageIOWxGimmickView.cpp
93                   creaImageIOWxGimmickReaderDialog.cpp
94                   creaImageIOWxGimmickFrame.cpp
95                   creaImageIOWxGimmickPanel.cpp
96                   creaImageIOWxGimmickTools.cpp
97                   creaImageIOWxListenerPanel.cpp
98                   creaImageIOWxPACSConnectionPanel.cpp
99                   creaImageIOWxTreeView.cpp
100                   creaImageIOWxOutputDlg.cpp
101                   #  Viewer
102                   creaImageIOWxViewer.cpp
103                   creaImageIOExternalGimmick.cpp
104                   BlockScopeWxApp.cpp
105                   creaImageIOListener.cpp
106                   )
107         SOURCE_GROUP("Source Files\\GUI" FILES ${SOURCES_CREAIMAGEIO_WX})
108 endif(USE_WXWIDGETS)
109
110 #--------------------------------------------
111 # USE QT, need to transform files (moc mechanism)
112 IF (USE_QT4)
113         #cpp
114         FILE(GLOB QT_CPP 
115                 QtGUI/*.cpp 
116                 QtGUI/*.cxx
117                 )
118         
119         # headers
120         SET(QT4_HEADERS_TO_WRAP
121                 QtGUI/creaimageioqtreeview.h
122                 QtGUI/creaImageIOQTGimmickReaderDialog.h
123                 )
124         
125
126         QT4_WRAP_CPP(MOC_SOURCES 
127                         ${QT4_HEADERS_TO_WRAP}
128                         )
129         SOURCE_GROUP("Source Files\\GUI" FILES 
130                         ${MOC_SOURCES}
131                     )
132   
133   
134         # UI
135         FILE(GLOB UI_FILES QtGUI/*.ui)
136         QT4_WRAP_UI(UI_SOURCES ${UI_FILES})
137         #SOURCE_GROUP("UI Files" FILES ${UI_FILES})
138         SOURCE_GROUP("Source Files\\GUI" FILES ${UI_SOURCES})
139 ENDIF(USE_QT4)
140
141
142 IF(USE_XERCES)
143         FILE(GLOB SOURCES_CREAIMAGEIO_OUTPUT
144                   creaImageIOOutputModel.cpp
145                   creaImageIOOutputModelParser.cpp
146                   )
147         SOURCE_GROUP("Source Files\\Output" FILES ${SOURCES_CREAIMAGEIO_OUTPUT})         
148 ENDIF(USE_XERCES)
149
150
151
152
153 # Header Files    
154 FILE(GLOB HEADER_CREAIMAGEIO creaImageIOImagePointerHolder.h  CppSQLite3.h)
155 #*.h)
156 FILE(GLOB SOURCES_CREAIMAGEIO_PACS PACS/*.cpp)
157 FILE(GLOB HEADER_CREAIMAGEIO_PACS PACS/*.h)
158
159
160 SOURCE_GROUP("Source Files" FILES ${SOURCES_CREAIMAGEIO})
161 SOURCE_GROUP("Header Files" FILES ${HEADER_CREAIMAGEIO})
162 if(BUILD_CREA_PACS)
163         SOURCE_GROUP("Source Files\\PACS" FILES ${SOURCES_CREAIMAGEIO_PACS})
164         SOURCE_GROUP("Header Files\\PACS" FILES ${HEADER_CREAIMAGEIO_PACS})
165 endif(BUILD_CREA_PACS)
166 SOURCE_GROUP("Source Files\\Readers" FILES ${SOURCES_CREAIMAGEIO_IMG_READER}
167                                                                                         ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER})
168 SOURCE_GROUP("Source Files\\Tree" FILES ${SOURCES_CREAIMAGEIO_TREE})
169
170 SOURCE_GROUP("Source Files\\ITK" FILES ${SOURCES_CREAIMAGEIO_ITK_DLG})
171
172
173 IF(USE_WXWIDGETS)
174 SET( GUI_SRCS
175          ${SOURCES_CREAIMAGEIO_WX}
176          ${SOURCES_CREAIMAGEIO_DIALOG}
177          )
178 ELSE(USE_WXWIDGETS)
179 SET( GUI_SRCS
180          ${QT_CPP}
181          ${UI_SOURCES}
182          ${MOC_SOURCES}
183          )
184 ENDIF(USE_WXWIDGETS)
185 SET( PRIMITIVE_SRCS
186  ${SOURCES_CREAIMAGEIO}
187  ${HEADER_CREAIMAGEIO}
188  ${SOURCES_CREAIMAGEIO_IMG_READER}
189  ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER}
190  ${GUI_SRCS}
191  ${SOURCES_CREAIMAGEIO_TREE}
192  ${SOURCES_CREAIMAGEIO_ITK_DLG}
193 )
194
195
196 #if ( ${CMAKE_EXE_LINKER_FLAGS} MATCHES "message:x64")message("charlie ${CMAKE_SYSTEM_PROCESSOR}")endif()
197
198 if( BUILD_CREA_PACS)
199         SET (SRCS
200                 ${PRIMITIVE_SRCS}
201                 ${SOURCES_CREAIMAGEIO_PACS}
202                 ${HEADER_CREAIMAGEIO_PACS}
203                 )
204 else (BUILD_CREA_PACS)
205 IF(USE_XERCES)
206         SET (SRCS
207                 ${PRIMITIVE_SRCS}
208                 ${SOURCES_CREAIMAGEIO_OUTPUT}
209                 )
210 ELSE(USE_XERCES)
211         SET (SRCS
212                 ${PRIMITIVE_SRCS}
213                 )
214 ENDIF(USE_XERCES)
215 endif (BUILD_CREA_PACS)
216
217 OPTION(${LIBRARY_NAME}_BUILD_SHARED 
218   "Build ${LIBRARY_NAME} as a shared library (dynamic) ?" ON)
219 IF (${LIBRARY_NAME}_BUILD_SHARED)
220   SET(CREAIMAGEIO_BUILD_SHARED SHARED)
221   crea_DEFINE(CREAIMAGEIO_BUILD_SHARED)
222 ENDIF(${LIBRARY_NAME}_BUILD_SHARED)
223
224 crea_DEFINE(CREAIMAGEIO_EXPORT_SYMBOLS)
225
226 ADD_LIBRARY(${LIBRARY_NAME} ${CREAIMAGEIO_BUILD_SHARED} ${SRCS})
227
228 IF(USE_QT4)
229 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
230       ${QT_LIBRARIES})
231 ENDIF(USE_QT4)
232
233 IF(USE_WXWIDGETS)
234 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
235       ${WXWIDGETS_LIBRARIES})
236 ENDIF(USE_WXWIDGETS)
237
238
239 IF (NOT USE_XERCES)
240 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
241   ${crea_LIBRARIES}
242   ${creaBruker_LIBRARIES}
243   ${WXWIDGETS_LIBRARIES}
244   ${VTK_LIBRARIES}
245   ${GDCM_LIBRARIES}
246   ${BOOST_LIBRARIES}
247   ${ITK_LIBRARIES}
248   sqlite3)
249 ELSE(NOT USE_XERCES)
250 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
251   ${crea_LIBRARIES}
252   ${creaBruker_LIBRARIES}
253   ${WXWIDGETS_LIBRARIES}
254   ${VTK_LIBRARIES}
255   ${GDCM_LIBRARIES}
256   ${BOOST_LIBRARIES}
257   ${XERCES_LIBRARIES}
258   sqlite3)  
259 ENDIF(NOT USE_XERCES)
260   
261  
262 #----------------------------------------------------------------------------
263 # INSTALLS LIBRARY
264 FILE(GLOB HEADERS "*.h" "*.txx")
265 INSTALL(
266   FILES ${HEADERS}
267   DESTINATION include/${LIBRARY_NAME}
268   )
269   
270
271 SET(CREAIMAGEIO_LIB_PATH ${CMAKE_CREA_LIB_PATH} )
272
273 INSTALL(
274   TARGETS ${LIBRARY_NAME} 
275   DESTINATION ${CREAIMAGEIO_LIB_PATH})
276
277      # Sets the settings for macro CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
278   SET(${LIBRARY_NAME}_INSTALL_FOLDER ${LIBRARY_NAME})
279   SET(${LIBRARY_NAME}_LIBRARIES ${LIBRARY_NAME})
280   
281 #  FILE(RELATIVE_PATH 
282 #    ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS 
283 #    ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
284 #    )
285 SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
286     src
287     win32
288 )
289
290
291   IF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
292     SET(CILFC_EXECUTABLE_OUTPUT_REL_PATH ".")
293   ELSE ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
294     FILE(RELATIVE_PATH 
295       CILFC_EXECUTABLE_OUTPUT_REL_PATH
296       ${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH})
297   ENDIF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
298
299
300
301   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS ${CMAKE_CREA_LIB_PATH} )
302
303   IF(UNIX)
304     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
305       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
306   ELSE(UNIX)
307     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
308       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
309   ENDIF(UNIX)
310   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS include/${LIBRARY_NAME})
311   
312   SET(${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE TRUE)
313 SET(${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE 
314   ${PROJECT_SOURCE_DIR}/src/Additional${LIBRARY_NAME}Config.cmake.in)
315 SET(${LIBRARY_NAME}_ADDITIONAL_USE_FILE 
316   ${PROJECT_SOURCE_DIR}/src/AdditionalUse${LIBRARY_NAME}.cmake.in)
317
318   # Invoke the advanced macro
319   CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
320 IF (WIN32)
321         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
322         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/bin/share/creaImageIO)
323 ELSE (WIN32)
324         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
325         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/share/creaImageIO)
326 ENDIF (WIN32)
327 CREA_CPDIR(${INPUT_DATA_DIR} ${OUTPUT_DATA_DIR})
328
329   
330 #CREA_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
331 #-----------------------------------------------------------------------------
332
333 OPTION( BUILD_DOXYGEN_DOC "Build doxygen doc ?" OFF)
334 IF(BUILD_DOXYGEN_DOC)
335   ADD_SUBDIRECTORY(doxygen)
336 ENDIF(BUILD_DOXYGEN_DOC)
337
338 INCLUDE_DIRECTORIES(
339 #  ${PROJECT_BINARY_DIR}
340   ${PROJECT_SOURCE_DIR}/src
341   )