Mercurial > hg > orthanc-wsi
comparison Resources/Graveyard/CMakeLists.txt @ 63:3252fbf149e3
test
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 25 Nov 2016 18:23:09 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
62:f45cec2c32e2 | 63:3252fbf149e3 |
---|---|
1 cmake_minimum_required(VERSION 2.8) | |
2 project(OrthancWSIApplications) | |
3 | |
4 | |
5 ##################################################################### | |
6 ## Parameters of the build | |
7 ##################################################################### | |
8 | |
9 # Generic parameters | |
10 SET(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") | |
11 SET(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") | |
12 SET(ENABLE_PROFILING OFF CACHE BOOL "Whether to enable the generation of profiling information with gprof") | |
13 | |
14 # Optional components | |
15 SET(ENABLE_SSL OFF CACHE BOOL "Include support for SSL") | |
16 SET(USE_DCMTK_361 OFF CACHE BOOL "Use forthcoming DCMTK version 3.6.1 in static builds (instead of 3.6.0)") | |
17 | |
18 if (CMAKE_SYSTEM_NAME STREQUAL "Linux") | |
19 set(TMP ON) | |
20 else() | |
21 set(TMP OFF) | |
22 endif() | |
23 | |
24 | |
25 # Advanced parameters to fine-tune linking against system libraries | |
26 SET(USE_SYSTEM_BOOST ON CACHE BOOL "Use the system version of Boost") | |
27 SET(USE_SYSTEM_CURL ON CACHE BOOL "Use the system version of LibCurl") | |
28 SET(USE_SYSTEM_DCMTK ON CACHE BOOL "Use the system version of DCMTK") | |
29 SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp") | |
30 SET(USE_SYSTEM_LIBJPEG ON CACHE BOOL "Use the system version of libjpeg") | |
31 SET(USE_SYSTEM_LIBPNG ON CACHE BOOL "Use the system version of libpng") | |
32 SET(USE_SYSTEM_LIBTIFF ON CACHE BOOL "Use the system version of libtiff") | |
33 SET(USE_SYSTEM_OPENJPEG ON CACHE BOOL "Use the system version of OpenJpeg") | |
34 SET(USE_SYSTEM_OPENSSL ON CACHE BOOL "Use the system version of OpenSSL") | |
35 SET(USE_SYSTEM_ZLIB ON CACHE BOOL "Use the system version of ZLib") | |
36 | |
37 SET(DCMTK_DICTIONARY_DIR "" CACHE PATH "Directory containing the DCMTK dictionaries \"dicom.dic\" and \"private.dic\" (only when using system version of DCMTK)") | |
38 | |
39 | |
40 ##################################################################### | |
41 ## Configure mandatory third-party components | |
42 ##################################################################### | |
43 | |
44 SET(ORTHANC_WSI_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) | |
45 SET(ORTHANC_ROOT ${ORTHANC_WSI_DIR}/Resources/Orthanc) | |
46 SET(USE_OPENJPEG_JP2 ON) | |
47 SET(ENABLE_JPEG OFF) # Disable DCMTK's support for JPEG, that clashes with libtiff | |
48 SET(ENABLE_JPEG_LOSSLESS OFF) # Disable DCMTK's support for JPEG-LS | |
49 SET(ENABLE_DCMTK_NETWORK OFF) # Disable DCMTK's support for DICOM networking | |
50 SET(STANDALONE_BUILD ON) # Embed DCMTK's dictionaries for static builds | |
51 SET(USE_DCMTK_361_PRIVATE_DIC OFF) # No need for private tags | |
52 | |
53 include(CheckIncludeFiles) | |
54 include(CheckIncludeFileCXX) | |
55 include(CheckLibraryExists) | |
56 include(FindPythonInterp) | |
57 include(FindPkgConfig) | |
58 include(CheckSymbolExists) | |
59 | |
60 include(${ORTHANC_ROOT}/Resources/CMake/Compiler.cmake) | |
61 include(${ORTHANC_ROOT}/Resources/CMake/AutoGeneratedCode.cmake) | |
62 include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake) | |
63 include(${ORTHANC_ROOT}/Resources/CMake/VisualStudioPrecompiledHeaders.cmake) | |
64 | |
65 # Third-party components shipped with Orthanc | |
66 include(${ORTHANC_ROOT}/Resources/CMake/DcmtkConfiguration.cmake) | |
67 include(${ORTHANC_ROOT}/Resources/CMake/JsonCppConfiguration.cmake) | |
68 include(${ORTHANC_ROOT}/Resources/CMake/LibCurlConfiguration.cmake) | |
69 include(${ORTHANC_ROOT}/Resources/CMake/LibJpegConfiguration.cmake) | |
70 include(${ORTHANC_ROOT}/Resources/CMake/LibPngConfiguration.cmake) | |
71 include(${ORTHANC_ROOT}/Resources/CMake/ZlibConfiguration.cmake) | |
72 | |
73 # Include components specific to WSI | |
74 include(${ORTHANC_WSI_DIR}/Resources/CMake/Version.cmake) | |
75 include(${ORTHANC_WSI_DIR}/Resources/CMake/BoostExtendedConfiguration.cmake) | |
76 include(${ORTHANC_WSI_DIR}/Resources/CMake/OpenJpegConfiguration.cmake) | |
77 include(${ORTHANC_WSI_DIR}/Resources/CMake/LibTiffConfiguration.cmake) | |
78 | |
79 add_definitions( | |
80 -DORTHANC_ENABLE_BASE64=1 | |
81 -DORTHANC_ENABLE_CURL=1 | |
82 -DORTHANC_ENABLE_DCMTK=1 | |
83 -DORTHANC_ENABLE_LOGGING=1 | |
84 -DORTHANC_ENABLE_MD5=0 | |
85 -DORTHANC_ENABLE_JPEG=0 # Disable DCMTK's support for JPEG | |
86 -DORTHANC_ENABLE_PKCS11=0 | |
87 -DORTHANC_ENABLE_PLUGINS=1 # To enable class Orthanc::SharedLibrary | |
88 -DORTHANC_ENABLE_PUGIXML=0 | |
89 -DORTHANC_SANDBOXED=0 | |
90 ) | |
91 | |
92 | |
93 ##################################################################### | |
94 ## Configure optional third-party components | |
95 ##################################################################### | |
96 | |
97 if (ENABLE_SSL) | |
98 set(ENABLE_PKCS11 OFF) | |
99 add_definitions(-DORTHANC_ENABLE_SSL=1) | |
100 include(${ORTHANC_ROOT}/Resources/CMake/OpenSslConfiguration.cmake) | |
101 else() | |
102 add_definitions(-DORTHANC_ENABLE_SSL=0) | |
103 endif() | |
104 | |
105 | |
106 ##################################################################### | |
107 ## Create the list of the source files that depend upon the | |
108 ## precompiled headers | |
109 ##################################################################### | |
110 | |
111 set(ORTHANC_WSI_SOURCES | |
112 ${ORTHANC_WSI_DIR}/Framework/Algorithms/PyramidReader.cpp | |
113 ${ORTHANC_WSI_DIR}/Framework/Algorithms/ReconstructPyramidCommand.cpp | |
114 ${ORTHANC_WSI_DIR}/Framework/Algorithms/TranscodeTileCommand.cpp | |
115 ${ORTHANC_WSI_DIR}/Framework/DicomToolbox.cpp | |
116 ${ORTHANC_WSI_DIR}/Framework/DicomizerParameters.cpp | |
117 ${ORTHANC_WSI_DIR}/Framework/Enumerations.cpp | |
118 ${ORTHANC_WSI_DIR}/Framework/ImageToolbox.cpp | |
119 ${ORTHANC_WSI_DIR}/Framework/ImagedVolumeParameters.cpp | |
120 ${ORTHANC_WSI_DIR}/Framework/Inputs/DecodedTiledPyramid.cpp | |
121 ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramid.cpp | |
122 ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramidInstance.cpp | |
123 ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramidLevel.cpp | |
124 ${ORTHANC_WSI_DIR}/Framework/Inputs/HierarchicalTiff.cpp | |
125 ${ORTHANC_WSI_DIR}/Framework/Inputs/OpenSlideLibrary.cpp | |
126 ${ORTHANC_WSI_DIR}/Framework/Inputs/OpenSlidePyramid.cpp | |
127 ${ORTHANC_WSI_DIR}/Framework/Inputs/PyramidWithRawTiles.cpp | |
128 ${ORTHANC_WSI_DIR}/Framework/Inputs/SingleLevelDecodedPyramid.cpp | |
129 ${ORTHANC_WSI_DIR}/Framework/Inputs/TiledPyramidStatistics.cpp | |
130 ${ORTHANC_WSI_DIR}/Framework/Jpeg2000Reader.cpp | |
131 ${ORTHANC_WSI_DIR}/Framework/Jpeg2000Writer.cpp | |
132 ${ORTHANC_WSI_DIR}/Framework/Targets/FolderTarget.cpp | |
133 ${ORTHANC_WSI_DIR}/Framework/Targets/OrthancTarget.cpp | |
134 ${ORTHANC_WSI_DIR}/Framework/Outputs/DicomPyramidWriter.cpp | |
135 ${ORTHANC_WSI_DIR}/Framework/Outputs/HierarchicalTiffWriter.cpp | |
136 ${ORTHANC_WSI_DIR}/Framework/Outputs/InMemoryTiledImage.cpp | |
137 ${ORTHANC_WSI_DIR}/Framework/Outputs/MultiframeDicomWriter.cpp | |
138 ${ORTHANC_WSI_DIR}/Framework/Outputs/PyramidWriterBase.cpp | |
139 ${ORTHANC_WSI_DIR}/Framework/Outputs/TruncatedPyramidWriter.cpp | |
140 ) | |
141 | |
142 set(ORTHANC_CORE_SOURCES | |
143 ${ORTHANC_ROOT}/Core/ChunkedBuffer.cpp | |
144 ${ORTHANC_ROOT}/Core/DicomFormat/DicomArray.cpp | |
145 ${ORTHANC_ROOT}/Core/DicomFormat/DicomMap.cpp | |
146 ${ORTHANC_ROOT}/Core/DicomFormat/DicomTag.cpp | |
147 ${ORTHANC_ROOT}/Core/DicomFormat/DicomValue.cpp | |
148 ${ORTHANC_ROOT}/Core/Enumerations.cpp | |
149 ${ORTHANC_ROOT}/Core/HttpClient.cpp | |
150 ${ORTHANC_ROOT}/Core/Images/IImageWriter.cpp | |
151 ${ORTHANC_ROOT}/Core/Images/Image.cpp | |
152 ${ORTHANC_ROOT}/Core/Images/ImageAccessor.cpp | |
153 ${ORTHANC_ROOT}/Core/Images/ImageBuffer.cpp | |
154 ${ORTHANC_ROOT}/Core/Images/ImageProcessing.cpp | |
155 ${ORTHANC_ROOT}/Core/Images/JpegErrorManager.cpp | |
156 ${ORTHANC_ROOT}/Core/Images/JpegReader.cpp | |
157 ${ORTHANC_ROOT}/Core/Images/JpegWriter.cpp | |
158 ${ORTHANC_ROOT}/Core/Images/PngReader.cpp | |
159 ${ORTHANC_ROOT}/Core/Images/PngWriter.cpp | |
160 ${ORTHANC_ROOT}/Core/Logging.cpp | |
161 ${ORTHANC_ROOT}/Core/MultiThreading/BagOfTasksProcessor.cpp | |
162 ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp | |
163 ${ORTHANC_ROOT}/Core/SystemToolbox.cpp | |
164 ${ORTHANC_ROOT}/Core/TemporaryFile.cpp | |
165 ${ORTHANC_ROOT}/Core/Toolbox.cpp | |
166 ${ORTHANC_ROOT}/Core/WebServiceParameters.cpp | |
167 ${ORTHANC_ROOT}/OrthancServer/FromDcmtkBridge.cpp | |
168 ${ORTHANC_ROOT}/OrthancServer/ServerEnumerations.cpp | |
169 ${ORTHANC_ROOT}/OrthancServer/ToDcmtkBridge.cpp | |
170 ${ORTHANC_ROOT}/Plugins/Engine/SharedLibrary.cpp | |
171 ${ORTHANC_ROOT}/Resources/ThirdParty/base64/base64.cpp | |
172 ) | |
173 | |
174 EmbedResources( | |
175 ${DCMTK_DICTIONARIES} | |
176 BRIGHTFIELD_OPTICAL_PATH ${ORTHANC_WSI_DIR}/Resources/BrightfieldOpticalPath.json | |
177 SAMPLE_DATASET ${ORTHANC_WSI_DIR}/Resources/SampleDataset.json | |
178 SRGB_ICC_PROFILE ${ORTHANC_WSI_DIR}/Resources/sRGB.icc | |
179 ) | |
180 | |
181 | |
182 ##################################################################### | |
183 ## Setup precompiled headers for Microsoft Visual Studio | |
184 ##################################################################### | |
185 | |
186 if (MSVC) | |
187 add_definitions(-DORTHANC_USE_PRECOMPILED_HEADERS=1) | |
188 | |
189 ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS( | |
190 "PrecompiledHeaders.h" "${ORTHANC_WSI_DIR}/Framework/Orthanc/Core/PrecompiledHeaders.cpp" ORTHANC_CORE_SOURCES) | |
191 | |
192 ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS( | |
193 "PrecompiledHeadersWSI.h" "${ORTHANC_WSI_DIR}/Framework/PrecompiledHeadersWSI.cpp" ORTHANC_WSI_SOURCES) | |
194 | |
195 source_group(ThirdParty\\OrthancCore FILES ${ORTHANC_CORE_SOURCES}) | |
196 endif() | |
197 | |
198 | |
199 ##################################################################### | |
200 ## Build a hello world | |
201 ##################################################################### | |
202 | |
203 add_executable(Hello | |
204 ${ORTHANC_CORE_SOURCES} | |
205 ${ORTHANC_WSI_SOURCES} | |
206 ${AUTOGENERATED_SOURCES} | |
207 | |
208 # Mandatory components | |
209 ${BOOST_SOURCES} | |
210 ${CURL_SOURCES} | |
211 ${DCMTK_SOURCES} | |
212 ${JSONCPP_SOURCES} | |
213 ${LIBJPEG_SOURCES} | |
214 ${LIBPNG_SOURCES} | |
215 ${LIBTIFF_SOURCES} | |
216 ${OPENJPEG_SOURCES} | |
217 ${ZLIB_SOURCES} | |
218 | |
219 # Optional components | |
220 ${OPENSSL_SOURCES} | |
221 | |
222 ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp | |
223 ${ORTHANC_ROOT}/Plugins/Samples/Common/DicomDatasetReader.cpp | |
224 ${ORTHANC_ROOT}/Plugins/Samples/Common/DicomPath.cpp | |
225 ${ORTHANC_ROOT}/Plugins/Samples/Common/DicomTag.cpp | |
226 ${ORTHANC_ROOT}/Plugins/Samples/Common/FullOrthancDataset.cpp | |
227 ${ORTHANC_ROOT}/Plugins/Samples/Common/IOrthancConnection.cpp | |
228 ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancHttpConnection.cpp | |
229 ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancPluginConnection.cpp | |
230 ${ORTHANC_ROOT}/Plugins/Samples/Common/SimplifiedOrthancDataset.cpp | |
231 | |
232 Hello.cpp | |
233 ${ORTHANC_WSI_DIR}/Applications/ApplicationToolbox.cpp | |
234 | |
235 ${DICOMIZER_RESOURCES} | |
236 ) | |
237 | |
238 add_definitions(-DHAS_ORTHANC_EXCEPTION=1) | |
239 | |
240 target_link_libraries(Hello ${DCMTK_LIBRARIES}) |