]> Creatis software - creaImageIO.git/blob - src/CMakeLists.txt
65390fadfacfe3a2922eaed1ba956216150358ff
[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           )
39 IF(USE_GDCM)
40  FILE(GLOB SOURCES_CREAIMAGEIO_IMG_DICOM_READER
41                 creaImageIODicomImageReader.cpp)
42 ENDIF(USE_GDCM)
43           
44 IF(USE_GDCM2)
45  FILE(GLOB SOURCES_CREAIMAGEIO_IMG_DICOM_READER
46                 creaImageIODicomImageReader2.cpp
47                 creaImageIODicomScanner.cpp)
48 ENDIF(USE_GDCM2)
49
50  # Image Readers
51 FILE(GLOB SOURCES_CREAIMAGEIO_IMG_READER
52           creaImageIOSimpleView.cpp
53           creaImageIOAbstractImageReader.cpp
54           creaImageIOImageReader.cpp
55           creaImageIOUltrasonixImageReader.cpp
56           creaImageIOVtkImageReader.cpp
57           creaImageIOMultiThreadImageReader.cpp
58           ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER}
59           )
60
61 # The wxWidgets-based components
62 if (USE_WXWIDGETS)
63 FILE(GLOB SOURCES_CREAIMAGEIO_WX
64           creaImageIOWxSimpleDlg.cpp
65           creaImageIOWxAttributeSelectionPanel.cpp
66           creaImageIOWxCustomizeConfigPanel.cpp
67           creaImageIOWxDescriptorPanel.cpp
68           creaImageIOWxEditFieldsPanel.cpp
69           creaImageIOWxExportDlg.cpp
70           creaImageIOWxDumpPanel.cpp
71           creaImageIOWxGimmickView.cpp
72           creaImageIOWxGimmickReaderDialog.cpp
73       creaImageIOWxGimmickFrame.cpp
74       creaImageIOWxGimmickPanel.cpp
75       creaImageIOWxGimmickTools.cpp
76       creaImageIOWxListenerPanel.cpp
77       creaImageIOWxPACSConnectionPanel.cpp
78           creaImageIOWxTreeView.cpp
79           creaImageIOWxOutputDlg.cpp
80           )
81 endif()
82
83
84 IF(USE_XERCES)
85 FILE(GLOB SOURCES_CREAIMAGEIO_OUTPUT
86           creaImageIOOutputModel.cpp
87           creaImageIOOutputModelParser.cpp
88           )
89 SOURCE_GROUP("Source Files\\Output" FILES ${SOURCES_CREAIMAGEIO_OUTPUT})         
90 ENDIF(USE_XERCES)
91
92
93
94
95 # Header Files    
96 FILE(GLOB HEADER_CREAIMAGEIO creaImageIOImagePointerHolder.h)
97 FILE(GLOB SOURCES_CREAIMAGEIO_PACS PACS/*.cpp)
98 FILE(GLOB HEADER_CREAIMAGEIO_PACS PACS/*.h)
99
100
101 SOURCE_GROUP("Source Files" FILES ${SOURCES_CREAIMAGEIO})
102 SOURCE_GROUP("Header Files" FILES ${HEADER_CREAIMAGEIO})
103 SOURCE_GROUP("Source Files\\GUI" FILES ${SOURCES_CREAIMAGEIO_WX})
104 if(BUILD_CREA_PACS)
105         SOURCE_GROUP("Source Files\\PACS" FILES ${SOURCES_CREAIMAGEIO_PACS})
106         SOURCE_GROUP("Header Files\\PACS" FILES ${HEADER_CREAIMAGEIO_PACS})
107 endif(BUILD_CREA_PACS)
108 SOURCE_GROUP("Source Files\\Readers" FILES ${SOURCES_CREAIMAGEIO_IMG_READER}
109                                                                                         ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER})
110 SOURCE_GROUP("Source Files\\Tree" FILES ${SOURCES_CREAIMAGEIO_TREE})
111
112
113 SET( PRIMITIVE_SRCS
114  ${SOURCES_CREAIMAGEIO}
115  ${HEADER_CREAIMAGEIO}
116  ${SOURCES_CREAIMAGEIO_IMG_READER}
117  ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER}
118  ${SOURCES_CREAIMAGEIO_WX}
119  ${SOURCES_CREAIMAGEIO_TREE}
120 )
121
122 if( BUILD_CREA_PACS)
123         SET (SRCS
124                 ${PRIMITIVE_SRCS}
125                 ${SOURCES_CREAIMAGEIO_PACS}
126                 ${HEADER_CREAIMAGEIO_PACS}
127                 )
128 else (BUILD_CREA_PACS)
129 IF(USE_XERCES)
130         SET (SRCS
131                 ${PRIMITIVE_SRCS}
132                 ${SOURCES_CREAIMAGEIO_OUTPUT}
133                 )
134 ELSE(USE_XERCES)
135         SET (SRCS
136                 ${PRIMITIVE_SRCS}
137                 )
138 ENDIF(USE_XERCES)
139 endif (BUILD_CREA_PACS)
140
141 OPTION(${LIBRARY_NAME}_BUILD_SHARED 
142   "Build ${LIBRARY_NAME} as a shared library (dynamic) ?" ON)
143 IF (${LIBRARY_NAME}_BUILD_SHARED)
144   SET(CREAIMAGEIO_BUILD_SHARED SHARED)
145   crea_DEFINE(CREAIMAGEIO_BUILD_SHARED)
146 ENDIF(${LIBRARY_NAME}_BUILD_SHARED)
147
148 crea_DEFINE(CREAIMAGEIO_EXPORT_SYMBOLS)
149
150 ADD_LIBRARY(${LIBRARY_NAME} ${CREAIMAGEIO_BUILD_SHARED} ${SRCS})
151
152 IF(USE_QT4)
153 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
154       ${QT_LIBRARIES})
155 ENDIF(USE_QT4)
156
157 IF(USE_WXWIDGETS)
158 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
159       ${WXWIDGETS_LIBRARIES})
160 ENDIF(USE_WXWIDGETS)
161
162
163 IF (NOT USE_XERCES)
164 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
165   ${crea_LIBRARIES}
166   ${creaBruker_LIBRARIES}
167   ${WXWIDGETS_LIBRARIES}
168   ${VTK_LIBRARIES}
169   ${GDCM_LIBRARIES}
170   ${BOOST_LIBRARIES}
171   sqlite3)
172 ELSE(NOT USE_XERCES)
173 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
174   ${crea_LIBRARIES}
175   ${creaBruker_LIBRARIES}
176   ${WXWIDGETS_LIBRARIES}
177   ${VTK_LIBRARIES}
178   ${GDCM_LIBRARIES}
179   ${BOOST_LIBRARIES}
180   ${XERCES_LIBRARIES}
181   sqlite3)  
182 ENDIF(NOT USE_XERCES)
183   
184   
185 #----------------------------------------------------------------------------
186 # INSTALLS LIBRARY
187 FILE(GLOB HEADERS "*.h" "*.txx")
188 INSTALL(
189   FILES ${HEADERS}
190   DESTINATION include/${LIBRARY_NAME}
191   )
192   
193
194 IF (WIN32)
195   SET(CREAIMAGEIO_LIB_PATH bin)
196 ELSE (WIN32)
197   SET(CREAIMAGEIO_LIB_PATH lib)
198 ENDIF(WIN32)
199
200 INSTALL(
201   TARGETS ${LIBRARY_NAME} 
202   DESTINATION ${CREAIMAGEIO_LIB_PATH})
203
204      # Sets the settings for macro CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
205   SET(${LIBRARY_NAME}_INSTALL_FOLDER ${LIBRARY_NAME})
206   SET(${LIBRARY_NAME}_LIBRARIES ${LIBRARY_NAME})
207   
208 #  FILE(RELATIVE_PATH 
209 #    ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS 
210 #    ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
211 #    )
212 SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
213     src
214     win32
215 )
216
217
218   IF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
219     SET(CILFC_EXECUTABLE_OUTPUT_REL_PATH ".")
220   ELSE ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
221     FILE(RELATIVE_PATH 
222       CILFC_EXECUTABLE_OUTPUT_REL_PATH
223       ${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH})
224   ENDIF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
225
226   IF(UNIX)
227     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
228       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
229     SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS lib)
230   ELSE(UNIX)
231     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
232       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
233     SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS bin)
234   ENDIF(UNIX)
235   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS include/${LIBRARY_NAME})
236   
237   SET(${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE TRUE)
238 SET(${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE 
239   ${PROJECT_SOURCE_DIR}/src/Additional${LIBRARY_NAME}Config.cmake.in)
240 SET(${LIBRARY_NAME}_ADDITIONAL_USE_FILE 
241   ${PROJECT_SOURCE_DIR}/src/AdditionalUse${LIBRARY_NAME}.cmake.in)
242
243   # Invoke the advanced macro
244   CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
245 IF (WIN32)
246         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
247         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/bin/Shared/gimmick)
248 ELSE (WIN32)
249         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
250         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/share/gimmick)
251 ENDIF (WIN32)
252 CREA_CPDIR(${INPUT_DATA_DIR} ${OUTPUT_DATA_DIR})
253
254   
255 #CREA_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
256 #-----------------------------------------------------------------------------
257
258 OPTION( BUILD_DOXYGEN_DOC "Build doxygen doc ?" OFF)
259 IF(BUILD_DOXYGEN_DOC)
260   SUBDIRS(doxygen)
261 ENDIF(BUILD_DOXYGEN_DOC)
262
263 INCLUDE_DIRECTORIES(
264 #  ${PROJECT_BINARY_DIR}
265   ${PROJECT_SOURCE_DIR}/src
266 #  ${PROJECT_SOURCE_DIR}/src/CppSQLite3
267   )