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