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