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