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