Mercurial > hg > orthanc
comparison OrthancFramework/Resources/CMake/BoostConfiguration.cmake @ 5064:6156a970a2e1
upgrade to Boost 1.80.0
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 15 Aug 2022 14:06:25 +0200 |
parents | cfbf45e76468 |
children | 3f16204b4c8d |
comparison
equal
deleted
inserted
replaced
5063:cfbf45e76468 | 5064:6156a970a2e1 |
---|---|
88 if (BOOST_STATIC AND NOT USE_LEGACY_BOOST) | 88 if (BOOST_STATIC AND NOT USE_LEGACY_BOOST) |
89 ## | 89 ## |
90 ## Parameters for static compilation of Boost | 90 ## Parameters for static compilation of Boost |
91 ## | 91 ## |
92 | 92 |
93 set(BOOST_NAME boost_1_69_0) | 93 set(BOOST_NAME boost_1_80_0) |
94 set(BOOST_VERSION 1.69.0) | 94 set(BOOST_VERSION 1.80.0) |
95 set(BOOST_BCP_SUFFIX bcpdigest-1.5.6) | 95 set(BOOST_BCP_SUFFIX bcpdigest-1.11.2) |
96 set(BOOST_MD5 "579bccc0ea4d1a261c1d0c5e27446c3d") | 96 set(BOOST_MD5 "7734e19f9a39a4411b807a9913e4a5ff") |
97 set(BOOST_URL "http://orthanc.osimis.io/ThirdPartyDownloads/${BOOST_NAME}_${BOOST_BCP_SUFFIX}.tar.gz") | 97 set(BOOST_URL "http://orthanc.osimis.io/ThirdPartyDownloads/${BOOST_NAME}_${BOOST_BCP_SUFFIX}.tar.gz") |
98 set(BOOST_SOURCES_DIR ${CMAKE_BINARY_DIR}/${BOOST_NAME}) | 98 set(BOOST_SOURCES_DIR ${CMAKE_BINARY_DIR}/${BOOST_NAME}) |
99 | 99 |
100 if (IS_DIRECTORY "${BOOST_SOURCES_DIR}") | 100 if (IS_DIRECTORY "${BOOST_SOURCES_DIR}") |
101 set(FirstRun OFF) | 101 set(FirstRun OFF) |
105 | 105 |
106 DownloadPackage(${BOOST_MD5} ${BOOST_URL} "${BOOST_SOURCES_DIR}") | 106 DownloadPackage(${BOOST_MD5} ${BOOST_URL} "${BOOST_SOURCES_DIR}") |
107 | 107 |
108 | 108 |
109 ## | 109 ## |
110 ## Patching boost | |
111 ## | |
112 | |
113 execute_process( | |
114 COMMAND ${PATCH_EXECUTABLE} -p0 -N -i | |
115 ${CMAKE_CURRENT_LIST_DIR}/../Patches/boost-${BOOST_VERSION}-linux-standard-base.patch | |
116 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | |
117 RESULT_VARIABLE Failure | |
118 ) | |
119 | |
120 if (FirstRun AND Failure) | |
121 message(FATAL_ERROR "Error while patching a file") | |
122 endif() | |
123 | |
124 | |
125 ## | |
126 ## Generic configuration of Boost | 110 ## Generic configuration of Boost |
127 ## | 111 ## |
128 | 112 |
129 if (CMAKE_COMPILER_IS_GNUCXX) | 113 if (CMAKE_COMPILER_IS_GNUCXX) |
130 add_definitions(-isystem ${BOOST_SOURCES_DIR}) | 114 add_definitions(-isystem ${BOOST_SOURCES_DIR}) |
131 endif() | 115 endif() |
132 | 116 |
133 include_directories( | 117 include_directories( |
134 BEFORE ${BOOST_SOURCES_DIR} | 118 BEFORE |
119 ${BOOST_SOURCES_DIR} | |
120 ${BOOST_SOURCES_DIR}/libs/atomic/src/ | |
121 ${BOOST_SOURCES_DIR}/libs/locale/src/ | |
135 ) | 122 ) |
136 | 123 |
137 if (ORTHANC_BUILDING_FRAMEWORK_LIBRARY) | 124 if (ORTHANC_BUILDING_FRAMEWORK_LIBRARY) |
138 add_definitions( | 125 add_definitions( |
139 # Packaging Boost inside the Orthanc Framework DLL | 126 # Packaging Boost inside the Orthanc Framework DLL |
162 # locale in lexical casts. This is notably important if | 149 # locale in lexical casts. This is notably important if |
163 # "boost::lexical_cast<double>()" is applied to strings containing | 150 # "boost::lexical_cast<double>()" is applied to strings containing |
164 # "," instead of "." as decimal separators. Check out function | 151 # "," instead of "." as decimal separators. Check out function |
165 # "OrthancStone::LinearAlgebra::ParseVector()". | 152 # "OrthancStone::LinearAlgebra::ParseVector()". |
166 -DBOOST_LEXICAL_CAST_ASSUME_C_LOCALE | 153 -DBOOST_LEXICAL_CAST_ASSUME_C_LOCALE |
154 | |
155 # Those definitions are necessary since Boost 1.80.0 | |
156 # https://github.com/RGLab/cytolib/issues/49 | |
157 -DBOOST_NO_AUTO_PTR | |
158 -DBOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF | |
159 -DBOOST_FILESYSTEM_HAS_POSIX_AT_APIS | |
167 ) | 160 ) |
168 | 161 |
169 set(BOOST_SOURCES | 162 set(BOOST_SOURCES |
170 ${BOOST_SOURCES_DIR}/libs/system/src/error_code.cpp | 163 ${BOOST_SOURCES_DIR}/libs/system/src/error_code.cpp |
171 ) | 164 ) |
190 CMAKE_SYSTEM_NAME STREQUAL "PNaCl" OR | 183 CMAKE_SYSTEM_NAME STREQUAL "PNaCl" OR |
191 CMAKE_SYSTEM_NAME STREQUAL "NaCl32" OR | 184 CMAKE_SYSTEM_NAME STREQUAL "NaCl32" OR |
192 CMAKE_SYSTEM_NAME STREQUAL "NaCl64" OR | 185 CMAKE_SYSTEM_NAME STREQUAL "NaCl64" OR |
193 CMAKE_SYSTEM_NAME STREQUAL "Android") | 186 CMAKE_SYSTEM_NAME STREQUAL "Android") |
194 list(APPEND BOOST_SOURCES | 187 list(APPEND BOOST_SOURCES |
195 ${BOOST_SOURCES_DIR}/libs/atomic/src/lockpool.cpp | 188 ${BOOST_SOURCES_DIR}/libs/atomic/src/lock_pool.cpp |
196 ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/once.cpp | 189 ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/once.cpp |
197 ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/thread.cpp | 190 ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/thread.cpp |
198 ) | 191 ) |
199 | 192 |
200 if ("${CMAKE_SYSTEM_VERSION}" STREQUAL "LinuxStandardBase" OR | 193 if ("${CMAKE_SYSTEM_VERSION}" STREQUAL "LinuxStandardBase" OR |
263 add_definitions( | 256 add_definitions( |
264 -DBOOST_HAS_FILESYSTEM_V3=1 | 257 -DBOOST_HAS_FILESYSTEM_V3=1 |
265 ) | 258 ) |
266 list(APPEND BOOST_SOURCES | 259 list(APPEND BOOST_SOURCES |
267 ${BOOST_NAME}/libs/filesystem/src/codecvt_error_category.cpp | 260 ${BOOST_NAME}/libs/filesystem/src/codecvt_error_category.cpp |
261 ${BOOST_NAME}/libs/filesystem/src/directory.cpp | |
262 ${BOOST_NAME}/libs/filesystem/src/exception.cpp | |
268 ${BOOST_NAME}/libs/filesystem/src/operations.cpp | 263 ${BOOST_NAME}/libs/filesystem/src/operations.cpp |
269 ${BOOST_NAME}/libs/filesystem/src/path.cpp | 264 ${BOOST_NAME}/libs/filesystem/src/path.cpp |
270 ${BOOST_NAME}/libs/filesystem/src/path_traits.cpp | 265 ${BOOST_NAME}/libs/filesystem/src/path_traits.cpp |
266 ${BOOST_NAME}/libs/filesystem/src/portability.cpp | |
267 ${BOOST_NAME}/libs/filesystem/src/unique_path.cpp | |
271 ) | 268 ) |
272 | 269 |
273 if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR | 270 if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR |
274 CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR | 271 CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR |
275 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") | 272 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") |
307 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/numeric.cpp | 304 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/numeric.cpp |
308 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/time_zone.cpp | 305 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/time_zone.cpp |
309 ) | 306 ) |
310 | 307 |
311 list(APPEND BOOST_SOURCES | 308 list(APPEND BOOST_SOURCES |
312 ${BOOST_SOURCES_DIR}/libs/locale/src/encoding/codepage.cpp | 309 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/encoding/codepage.cpp |
313 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/generator.cpp | 310 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/shared/date_time.cpp |
314 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/date_time.cpp | 311 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/shared/formatting.cpp |
315 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/formatting.cpp | 312 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/shared/generator.cpp |
316 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/ids.cpp | 313 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/shared/ids.cpp |
317 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/localization_backend.cpp | 314 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/shared/localization_backend.cpp |
318 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/message.cpp | 315 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/shared/message.cpp |
319 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/mo_lambda.cpp | 316 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/shared/mo_lambda.cpp |
320 ${BOOST_SOURCES_DIR}/libs/locale/src/util/codecvt_converter.cpp | 317 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/util/codecvt_converter.cpp |
321 ${BOOST_SOURCES_DIR}/libs/locale/src/util/default_locale.cpp | 318 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/util/default_locale.cpp |
322 ${BOOST_SOURCES_DIR}/libs/locale/src/util/gregorian.cpp | 319 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/util/gregorian.cpp |
323 ${BOOST_SOURCES_DIR}/libs/locale/src/util/info.cpp | 320 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/util/info.cpp |
324 ${BOOST_SOURCES_DIR}/libs/locale/src/util/locale_data.cpp | 321 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/util/locale_data.cpp |
325 ) | 322 ) |
326 | 323 |
327 if (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR | 324 if (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR |
328 CMAKE_SYSTEM_VERSION STREQUAL "LinuxStandardBase") | 325 CMAKE_SYSTEM_VERSION STREQUAL "LinuxStandardBase") |
329 add_definitions( | 326 add_definitions( |
330 -DBOOST_LOCALE_NO_WINAPI_BACKEND=1 | 327 -DBOOST_LOCALE_NO_WINAPI_BACKEND=1 |
331 -DBOOST_LOCALE_NO_POSIX_BACKEND=1 | 328 -DBOOST_LOCALE_NO_POSIX_BACKEND=1 |
332 ) | 329 ) |
333 | 330 |
334 list(APPEND BOOST_SOURCES | 331 list(APPEND BOOST_SOURCES |
335 ${BOOST_SOURCES_DIR}/libs/locale/src/std/codecvt.cpp | 332 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/std/codecvt.cpp |
336 ${BOOST_SOURCES_DIR}/libs/locale/src/std/collate.cpp | 333 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/std/collate.cpp |
337 ${BOOST_SOURCES_DIR}/libs/locale/src/std/converter.cpp | 334 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/std/converter.cpp |
338 ${BOOST_SOURCES_DIR}/libs/locale/src/std/numeric.cpp | 335 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/std/numeric.cpp |
339 ${BOOST_SOURCES_DIR}/libs/locale/src/std/std_backend.cpp | 336 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/std/std_backend.cpp |
340 ) | 337 ) |
341 | 338 |
342 if (BOOST_LOCALE_BACKEND STREQUAL "gcc" OR | 339 if (BOOST_LOCALE_BACKEND STREQUAL "gcc" OR |
343 BOOST_LOCALE_BACKEND STREQUAL "libiconv") | 340 BOOST_LOCALE_BACKEND STREQUAL "libiconv") |
344 add_definitions(-DBOOST_LOCALE_WITH_ICONV=1) | 341 add_definitions(-DBOOST_LOCALE_WITH_ICONV=1) |
361 -DBOOST_LOCALE_NO_WINAPI_BACKEND=1 | 358 -DBOOST_LOCALE_NO_WINAPI_BACKEND=1 |
362 -DBOOST_LOCALE_NO_STD_BACKEND=1 | 359 -DBOOST_LOCALE_NO_STD_BACKEND=1 |
363 ) | 360 ) |
364 | 361 |
365 list(APPEND BOOST_SOURCES | 362 list(APPEND BOOST_SOURCES |
366 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/codecvt.cpp | 363 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/posix/codecvt.cpp |
367 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/collate.cpp | 364 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/posix/collate.cpp |
368 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/converter.cpp | 365 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/posix/converter.cpp |
369 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/numeric.cpp | 366 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/posix/numeric.cpp |
370 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/posix_backend.cpp | 367 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/posix/posix_backend.cpp |
371 ) | 368 ) |
372 | 369 |
373 if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten" OR | 370 if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten" OR |
374 BOOST_LOCALE_BACKEND STREQUAL "gcc" OR | 371 BOOST_LOCALE_BACKEND STREQUAL "gcc" OR |
375 BOOST_LOCALE_BACKEND STREQUAL "libiconv") | 372 BOOST_LOCALE_BACKEND STREQUAL "libiconv") |
388 -DBOOST_LOCALE_NO_POSIX_BACKEND=1 | 385 -DBOOST_LOCALE_NO_POSIX_BACKEND=1 |
389 -DBOOST_LOCALE_NO_STD_BACKEND=1 | 386 -DBOOST_LOCALE_NO_STD_BACKEND=1 |
390 ) | 387 ) |
391 | 388 |
392 list(APPEND BOOST_SOURCES | 389 list(APPEND BOOST_SOURCES |
393 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/collate.cpp | 390 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/win32/collate.cpp |
394 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/converter.cpp | 391 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/win32/converter.cpp |
395 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/lcid.cpp | 392 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/win32/lcid.cpp |
396 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/numeric.cpp | 393 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/win32/numeric.cpp |
397 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/win_backend.cpp | 394 ${BOOST_SOURCES_DIR}/libs/locale/src/boost/locale/win32/win_backend.cpp |
398 ) | 395 ) |
399 | 396 |
400 # Starting with release 0.8.2, Orthanc statically links against | 397 # Starting with release 0.8.2, Orthanc statically links against |
401 # libiconv on Windows. Indeed, the "WCONV" library of Windows XP | 398 # libiconv on Windows. Indeed, the "WCONV" library of Windows XP |
402 # seems not to support properly several codepages (notably | 399 # seems not to support properly several codepages (notably |