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