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