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