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