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