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