]> Creatis software - creaImageIO.git/blob - src/CMakeLists.txt
0f76b4374ae391e83e35dccf252daffbf1a892f6
[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  CppSQLite3.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
124 #if ( ${CMAKE_EXE_LINKER_FLAGS} MATCHES "message:x64")message("charlie ${CMAKE_SYSTEM_PROCESSOR}")endif()
125
126 if( BUILD_CREA_PACS)
127         SET (SRCS
128                 ${PRIMITIVE_SRCS}
129                 ${SOURCES_CREAIMAGEIO_PACS}
130                 ${HEADER_CREAIMAGEIO_PACS}
131                 )
132 else (BUILD_CREA_PACS)
133 IF(USE_XERCES)
134         SET (SRCS
135                 ${PRIMITIVE_SRCS}
136                 ${SOURCES_CREAIMAGEIO_OUTPUT}
137                 )
138 ELSE(USE_XERCES)
139         SET (SRCS
140                 ${PRIMITIVE_SRCS}
141                 )
142 ENDIF(USE_XERCES)
143 endif (BUILD_CREA_PACS)
144
145 OPTION(${LIBRARY_NAME}_BUILD_SHARED 
146   "Build ${LIBRARY_NAME} as a shared library (dynamic) ?" ON)
147 IF (${LIBRARY_NAME}_BUILD_SHARED)
148   SET(CREAIMAGEIO_BUILD_SHARED SHARED)
149   crea_DEFINE(CREAIMAGEIO_BUILD_SHARED)
150 ENDIF(${LIBRARY_NAME}_BUILD_SHARED)
151
152 crea_DEFINE(CREAIMAGEIO_EXPORT_SYMBOLS)
153
154 ADD_LIBRARY(${LIBRARY_NAME} ${CREAIMAGEIO_BUILD_SHARED} ${SRCS})
155
156 IF(USE_QT4)
157 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
158       ${QT_LIBRARIES})
159 ENDIF(USE_QT4)
160
161 IF(USE_WXWIDGETS)
162 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
163       ${WXWIDGETS_LIBRARIES})
164 ENDIF(USE_WXWIDGETS)
165
166
167 IF (NOT USE_XERCES)
168 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
169   ${crea_LIBRARIES}
170   ${creaBruker_LIBRARIES}
171   ${WXWIDGETS_LIBRARIES}
172   ${VTK_LIBRARIES}
173   ${GDCM_LIBRARIES}
174   ${BOOST_LIBRARIES}
175   sqlite3)
176 ELSE(NOT USE_XERCES)
177 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
178   ${crea_LIBRARIES}
179   ${creaBruker_LIBRARIES}
180   ${WXWIDGETS_LIBRARIES}
181   ${VTK_LIBRARIES}
182   ${GDCM_LIBRARIES}
183   ${BOOST_LIBRARIES}
184   ${XERCES_LIBRARIES}
185   sqlite3)  
186 ENDIF(NOT USE_XERCES)
187   
188  
189 #----------------------------------------------------------------------------
190 # INSTALLS LIBRARY
191 FILE(GLOB HEADERS "*.h" "*.txx")
192 INSTALL(
193   FILES ${HEADERS}
194   DESTINATION include/${LIBRARY_NAME}
195   )
196   
197
198 IF (WIN32)
199   SET(CREAIMAGEIO_LIB_PATH bin)
200 ELSE (WIN32)
201   SET(CREAIMAGEIO_LIB_PATH lib)
202 ENDIF(WIN32)
203
204 INSTALL(
205   TARGETS ${LIBRARY_NAME} 
206   DESTINATION ${CREAIMAGEIO_LIB_PATH})
207
208      # Sets the settings for macro CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
209   SET(${LIBRARY_NAME}_INSTALL_FOLDER ${LIBRARY_NAME})
210   SET(${LIBRARY_NAME}_LIBRARIES ${LIBRARY_NAME})
211   
212 #  FILE(RELATIVE_PATH 
213 #    ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS 
214 #    ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
215 #    )
216 SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
217     src
218     win32
219 )
220
221
222   IF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
223     SET(CILFC_EXECUTABLE_OUTPUT_REL_PATH ".")
224   ELSE ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
225     FILE(RELATIVE_PATH 
226       CILFC_EXECUTABLE_OUTPUT_REL_PATH
227       ${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH})
228   ENDIF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
229
230   IF(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 lib)
234   ELSE(UNIX)
235     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
236       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
237     SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS bin)
238   ENDIF(UNIX)
239   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS include/${LIBRARY_NAME})
240   
241   SET(${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE TRUE)
242 SET(${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE 
243   ${PROJECT_SOURCE_DIR}/src/Additional${LIBRARY_NAME}Config.cmake.in)
244 SET(${LIBRARY_NAME}_ADDITIONAL_USE_FILE 
245   ${PROJECT_SOURCE_DIR}/src/AdditionalUse${LIBRARY_NAME}.cmake.in)
246
247   # Invoke the advanced macro
248   CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
249 IF (WIN32)
250         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
251         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/bin/share/gimmick)
252 ELSE (WIN32)
253         SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
254         SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/share/gimmick)
255 ENDIF (WIN32)
256 CREA_CPDIR(${INPUT_DATA_DIR} ${OUTPUT_DATA_DIR})
257
258   
259 #CREA_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
260 #-----------------------------------------------------------------------------
261
262 OPTION( BUILD_DOXYGEN_DOC "Build doxygen doc ?" OFF)
263 IF(BUILD_DOXYGEN_DOC)
264   SUBDIRS(doxygen)
265 ENDIF(BUILD_DOXYGEN_DOC)
266
267 INCLUDE_DIRECTORIES(
268 #  ${PROJECT_BINARY_DIR}
269   ${PROJECT_SOURCE_DIR}/src
270
271   )