comparison Resources/CMake/OrthancStone.cmake @ 0:351ab0da0150

initial commit
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 14 Oct 2016 15:34:11 +0200
parents
children b1eb80ca0d2b
comparison
equal deleted inserted replaced
-1:000000000000 0:351ab0da0150
1 #####################################################################
2 ## Parameters of the build
3 #####################################################################
4
5 # Generic parameters
6 SET(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)")
7 SET(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages")
8
9 # Optional components
10 SET(ENABLE_CURL ON CACHE BOOL "Include support for libcurl")
11 SET(ENABLE_SSL OFF CACHE BOOL "Include support for SSL")
12 SET(ENABLE_SDL ON CACHE BOOL "Include support for SDL")
13 SET(ENABLE_LOGGING ON CACHE BOOL "Enable logging facilities from Orthanc")
14
15 # Advanced parameters to fine-tune linking against system libraries
16 SET(USE_SYSTEM_BOOST ON CACHE BOOL "Use the system version of Boost")
17 SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp")
18 SET(USE_SYSTEM_ZLIB ON CACHE BOOL "Use the system version of ZLib")
19 SET(USE_SYSTEM_CAIRO ON CACHE BOOL "Use the system version of Cairo")
20 SET(USE_SYSTEM_PIXMAN ON CACHE BOOL "Use the system version of Pixman")
21 SET(USE_SYSTEM_LIBPNG ON CACHE BOOL "Use the system version of libpng")
22 SET(USE_SYSTEM_LIBJPEG ON CACHE BOOL "Use the system version of libjpeg")
23 SET(USE_SYSTEM_CURL ON CACHE BOOL "Use the system version of LibCurl")
24 SET(USE_SYSTEM_OPENSSL ON CACHE BOOL "Use the system version of OpenSSL")
25 SET(USE_SYSTEM_SDL ON CACHE BOOL "Use the system version of SDL2")
26
27
28 #####################################################################
29 ## Configure mandatory third-party components
30 #####################################################################
31
32 SET(ORTHANC_STONE_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)
33 SET(ORTHANC_ROOT ${ORTHANC_STONE_DIR}/Framework/Orthanc)
34
35 include(CheckIncludeFiles)
36 include(CheckIncludeFileCXX)
37 include(CheckLibraryExists)
38 include(FindPythonInterp)
39 include(FindPkgConfig)
40
41 include(${ORTHANC_ROOT}/Resources/CMake/Compiler.cmake)
42 include(${ORTHANC_ROOT}/Resources/CMake/AutoGeneratedCode.cmake)
43 include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake)
44
45 include(${ORTHANC_ROOT}/Resources/CMake/JsonCppConfiguration.cmake)
46 include(${ORTHANC_ROOT}/Resources/CMake/ZlibConfiguration.cmake)
47 include(${ORTHANC_ROOT}/Resources/CMake/LibPngConfiguration.cmake)
48 include(${ORTHANC_ROOT}/Resources/CMake/LibJpegConfiguration.cmake)
49
50 include(${CMAKE_CURRENT_LIST_DIR}/BoostExtendedConfiguration.cmake)
51 include(${CMAKE_CURRENT_LIST_DIR}/CairoConfiguration.cmake)
52 include(${CMAKE_CURRENT_LIST_DIR}/PixmanConfiguration.cmake)
53
54
55 #####################################################################
56 ## Configure optional third-party components
57 #####################################################################
58
59 if (ENABLE_LOGGING)
60 add_definitions(-DORTHANC_ENABLE_LOGGING=1)
61 else()
62 add_definitions(-DORTHANC_ENABLE_LOGGING=0)
63 endif()
64
65 if (ENABLE_SDL)
66 include(${CMAKE_CURRENT_LIST_DIR}/SdlConfiguration.cmake)
67 add_definitions(-DORTHANC_ENABLE_SDL=1)
68 else()
69 add_definitions(-DORTHANC_ENABLE_SDL=0)
70 endif()
71
72 if (ENABLE_CURL)
73 add_definitions(-DORTHANC_ENABLE_CURL=1)
74 include(${ORTHANC_ROOT}/Resources/CMake/LibCurlConfiguration.cmake)
75
76 if (ENABLE_SSL)
77 set(ENABLE_PKCS11 OFF)
78 add_definitions(-DORTHANC_SSL_ENABLED=1)
79 include(${ORTHANC_ROOT}/Resources/CMake/OpenSslConfiguration.cmake)
80 else()
81 add_definitions(-DORTHANC_SSL_ENABLED=0)
82 endif()
83 else()
84 add_definitions(
85 -DORTHANC_SSL_ENABLED=0
86 -DORTHANC_ENABLE_CURL=0
87 )
88 endif()
89
90 add_definitions(
91 -DORTHANC_ENABLE_MD5=0
92 -DORTHANC_ENABLE_BASE64=1
93 -DORTHANC_PUGIXML_ENABLED=0
94 -DORTHANC_PKCS11_ENABLED=0
95 )
96
97
98 #####################################################################
99 ## Link the colormaps into the binaries
100 #####################################################################
101
102 EmbedResources(
103 COLORMAP_HOT ${ORTHANC_STONE_DIR}/Resources/Colormaps/hot.lut
104 COLORMAP_JET ${ORTHANC_STONE_DIR}/Resources/Colormaps/jet.lut
105 COLORMAP_RED ${ORTHANC_STONE_DIR}/Resources/Colormaps/red.lut
106 COLORMAP_GREEN ${ORTHANC_STONE_DIR}/Resources/Colormaps/green.lut
107 COLORMAP_BLUE ${ORTHANC_STONE_DIR}/Resources/Colormaps/blue.lut
108 )
109
110
111 #####################################################################
112 ## System-specific patches
113 #####################################################################
114
115 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows" AND
116 NOT MSVC AND
117 ENABLE_SDL)
118 # This is necessary when compiling EXE for Windows using MinGW
119 link_libraries(mingw32)
120 endif()
121
122
123
124 #####################################################################
125 ## All the source files required to build Stone of Orthanc
126 #####################################################################
127
128 list(APPEND ORTHANC_STONE_SOURCES
129 ${ORTHANC_STONE_DIR}/Framework/Applications/BasicApplicationContext.cpp
130 ${ORTHANC_STONE_DIR}/Framework/Applications/IBasicApplication.cpp
131 ${ORTHANC_STONE_DIR}/Framework/Applications/Sdl/SdlBuffering.cpp
132 ${ORTHANC_STONE_DIR}/Framework/Applications/Sdl/SdlEngine.cpp
133 ${ORTHANC_STONE_DIR}/Framework/Applications/Sdl/SdlWindow.cpp
134 ${ORTHANC_STONE_DIR}/Framework/Layers/CircleMeasureTracker.cpp
135 ${ORTHANC_STONE_DIR}/Framework/Layers/ColorFrameRenderer.cpp
136 ${ORTHANC_STONE_DIR}/Framework/Layers/DicomStructureSetRendererFactory.cpp
137 ${ORTHANC_STONE_DIR}/Framework/Layers/FrameRenderer.cpp
138 ${ORTHANC_STONE_DIR}/Framework/Layers/GrayscaleFrameRenderer.cpp
139 ${ORTHANC_STONE_DIR}/Framework/Layers/LineLayerRenderer.cpp
140 ${ORTHANC_STONE_DIR}/Framework/Layers/LineMeasureTracker.cpp
141 ${ORTHANC_STONE_DIR}/Framework/Layers/RenderStyle.cpp
142 ${ORTHANC_STONE_DIR}/Framework/Layers/SeriesFrameRendererFactory.cpp
143 ${ORTHANC_STONE_DIR}/Framework/Layers/SiblingSliceLocationFactory.cpp
144 ${ORTHANC_STONE_DIR}/Framework/Layers/SingleFrameRendererFactory.cpp
145 ${ORTHANC_STONE_DIR}/Framework/Messaging/CurlOrthancConnection.cpp
146 ${ORTHANC_STONE_DIR}/Framework/Messaging/MessagingToolbox.cpp
147 ${ORTHANC_STONE_DIR}/Framework/Toolbox/BinarySemaphore.cpp
148 ${ORTHANC_STONE_DIR}/Framework/Toolbox/DicomDataset.cpp
149 ${ORTHANC_STONE_DIR}/Framework/Toolbox/DicomFrameConverter.cpp
150 ${ORTHANC_STONE_DIR}/Framework/Toolbox/DicomStructureSet.cpp
151 ${ORTHANC_STONE_DIR}/Framework/Toolbox/DownloadStack.cpp
152 ${ORTHANC_STONE_DIR}/Framework/Toolbox/GeometryToolbox.cpp
153 ${ORTHANC_STONE_DIR}/Framework/Toolbox/OrthancSeriesLoader.cpp
154 ${ORTHANC_STONE_DIR}/Framework/Toolbox/ParallelSlices.cpp
155 ${ORTHANC_STONE_DIR}/Framework/Toolbox/ParallelSlicesCursor.cpp
156 ${ORTHANC_STONE_DIR}/Framework/Toolbox/SliceGeometry.cpp
157 ${ORTHANC_STONE_DIR}/Framework/Toolbox/ViewportGeometry.cpp
158 ${ORTHANC_STONE_DIR}/Framework/Viewport/CairoContext.cpp
159 ${ORTHANC_STONE_DIR}/Framework/Viewport/CairoFont.cpp
160 ${ORTHANC_STONE_DIR}/Framework/Viewport/CairoSurface.cpp
161 ${ORTHANC_STONE_DIR}/Framework/Viewport/WidgetViewport.cpp
162 ${ORTHANC_STONE_DIR}/Framework/Volumes/ImageBuffer3D.cpp
163 ${ORTHANC_STONE_DIR}/Framework/Volumes/VolumeImage.cpp
164 ${ORTHANC_STONE_DIR}/Framework/Volumes/VolumeImagePolicyBase.cpp
165 ${ORTHANC_STONE_DIR}/Framework/Volumes/VolumeImageProgressivePolicy.cpp
166 ${ORTHANC_STONE_DIR}/Framework/Volumes/VolumeImageSimplePolicy.cpp
167 ${ORTHANC_STONE_DIR}/Framework/Widgets/CairoWidget.cpp
168 ${ORTHANC_STONE_DIR}/Framework/Widgets/EmptyWidget.cpp
169 ${ORTHANC_STONE_DIR}/Framework/Widgets/LayeredSceneWidget.cpp
170 ${ORTHANC_STONE_DIR}/Framework/Widgets/LayoutWidget.cpp
171 ${ORTHANC_STONE_DIR}/Framework/Widgets/TestCairoWidget.cpp
172 ${ORTHANC_STONE_DIR}/Framework/Widgets/TestWorldSceneWidget.cpp
173 ${ORTHANC_STONE_DIR}/Framework/Widgets/WidgetBase.cpp
174 ${ORTHANC_STONE_DIR}/Framework/Widgets/WorldSceneWidget.cpp
175
176 ${ORTHANC_ROOT}/Core/ChunkedBuffer.cpp
177 ${ORTHANC_ROOT}/Core/Compression/DeflateBaseCompressor.cpp
178 ${ORTHANC_ROOT}/Core/Compression/GzipCompressor.cpp
179 ${ORTHANC_ROOT}/Core/Enumerations.cpp
180 ${ORTHANC_ROOT}/Core/HttpClient.cpp
181 ${ORTHANC_ROOT}/Core/Images/Image.cpp
182 ${ORTHANC_ROOT}/Core/Images/ImageAccessor.cpp
183 ${ORTHANC_ROOT}/Core/Images/ImageBuffer.cpp
184 ${ORTHANC_ROOT}/Core/Images/ImageProcessing.cpp
185 ${ORTHANC_ROOT}/Core/Images/JpegErrorManager.cpp
186 ${ORTHANC_ROOT}/Core/Images/JpegReader.cpp
187 ${ORTHANC_ROOT}/Core/Images/PngReader.cpp
188 ${ORTHANC_ROOT}/Core/Logging.cpp
189 ${ORTHANC_ROOT}/Core/Toolbox.cpp
190 ${ORTHANC_ROOT}/Core/WebServiceParameters.cpp
191 ${ORTHANC_ROOT}/Resources/ThirdParty/base64/base64.cpp
192
193 ${AUTOGENERATED_SOURCES}
194
195 # Mandatory components
196 ${BOOST_SOURCES}
197 ${CAIRO_SOURCES}
198 ${JSONCPP_SOURCES}
199 ${PIXMAN_SOURCES}
200 ${ZLIB_SOURCES}
201 ${LIBPNG_SOURCES}
202 ${LIBJPEG_SOURCES}
203
204 # Optional components
205 ${OPENSSL_SOURCES}
206 ${CURL_SOURCES}
207 ${SDL_SOURCES}
208 )