0
|
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)
|
13
|
78 add_definitions(-DORTHANC_ENABLE_SSL=1)
|
0
|
79 include(${ORTHANC_ROOT}/Resources/CMake/OpenSslConfiguration.cmake)
|
|
80 else()
|
13
|
81 add_definitions(-DORTHANC_ENABLE_SSL=0)
|
0
|
82 endif()
|
|
83 else()
|
|
84 add_definitions(
|
13
|
85 -DORTHANC_ENABLE_SSL=0
|
0
|
86 -DORTHANC_ENABLE_CURL=0
|
|
87 )
|
|
88 endif()
|
|
89
|
|
90 add_definitions(
|
|
91 -DORTHANC_ENABLE_MD5=0
|
|
92 -DORTHANC_ENABLE_BASE64=1
|
13
|
93 -DORTHANC_ENABLE_PUGIXML=0
|
|
94 -DORTHANC_ENABLE_PKCS11=0
|
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 )
|