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