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})