comparison Resources/CMake/BoostConfiguration.cmake @ 3228:4b9cfd92d1ae

preparing for libicu
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 14 Feb 2019 19:41:09 +0100
parents 0c2a8d5e0097
children 4b042ec734c1
comparison
equal deleted inserted replaced
3227:53bb1f4b3844 3228:4b9cfd92d1ae
244 ${BOOST_SOURCES_DIR}/libs/locale/src/util/locale_data.cpp 244 ${BOOST_SOURCES_DIR}/libs/locale/src/util/locale_data.cpp
245 ) 245 )
246 246
247 if (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR 247 if (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR
248 CMAKE_SYSTEM_VERSION STREQUAL "LinuxStandardBase") 248 CMAKE_SYSTEM_VERSION STREQUAL "LinuxStandardBase")
249 add_definitions(
250 -DBOOST_LOCALE_NO_WINAPI_BACKEND=1
251 -DBOOST_LOCALE_NO_POSIX_BACKEND=1
252 )
253
249 list(APPEND BOOST_SOURCES 254 list(APPEND BOOST_SOURCES
250 ${BOOST_SOURCES_DIR}/libs/locale/src/std/codecvt.cpp 255 ${BOOST_SOURCES_DIR}/libs/locale/src/std/codecvt.cpp
251 ${BOOST_SOURCES_DIR}/libs/locale/src/std/collate.cpp 256 ${BOOST_SOURCES_DIR}/libs/locale/src/std/collate.cpp
252 ${BOOST_SOURCES_DIR}/libs/locale/src/std/converter.cpp 257 ${BOOST_SOURCES_DIR}/libs/locale/src/std/converter.cpp
253 ${BOOST_SOURCES_DIR}/libs/locale/src/std/numeric.cpp 258 ${BOOST_SOURCES_DIR}/libs/locale/src/std/numeric.cpp
254 ${BOOST_SOURCES_DIR}/libs/locale/src/std/std_backend.cpp 259 ${BOOST_SOURCES_DIR}/libs/locale/src/std/std_backend.cpp
255 ) 260 )
256 261
257 add_definitions( 262 if (BOOST_LOCALE_BACKEND STREQUAL "iconv")
258 -DBOOST_LOCALE_WITH_ICONV=1 263 add_definitions(-DBOOST_LOCALE_WITH_ICONV=1)
259 -DBOOST_LOCALE_NO_WINAPI_BACKEND=1 264 elseif (BOOST_LOCALE_BACKEND STREQUAL "icu")
260 -DBOOST_LOCALE_NO_POSIX_BACKEND=1 265 add_definitions(-DBOOST_LOCALE_WITH_ICU=1)
261 ) 266 else()
262 267 message(FATAL_ERROR "Unsupported value for BOOST_LOCALE_BACKEND: ${BOOST_LOCALE_BACKEND}")
268 endif()
269
263 elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR 270 elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR
264 CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR 271 CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR
265 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR 272 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR
266 CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD" OR 273 CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD" OR
267 CMAKE_SYSTEM_NAME STREQUAL "PNaCl" OR 274 CMAKE_SYSTEM_NAME STREQUAL "PNaCl" OR
268 CMAKE_SYSTEM_NAME STREQUAL "NaCl32" OR 275 CMAKE_SYSTEM_NAME STREQUAL "NaCl32" OR
269 CMAKE_SYSTEM_NAME STREQUAL "NaCl64" OR 276 CMAKE_SYSTEM_NAME STREQUAL "NaCl64" OR
270 CMAKE_SYSTEM_NAME STREQUAL "Emscripten") # For WebAssembly or asm.js 277 CMAKE_SYSTEM_NAME STREQUAL "Emscripten") # For WebAssembly or asm.js
278 add_definitions(
279 -DBOOST_LOCALE_NO_WINAPI_BACKEND=1
280 -DBOOST_LOCALE_NO_STD_BACKEND=1
281 )
282
271 list(APPEND BOOST_SOURCES 283 list(APPEND BOOST_SOURCES
272 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/codecvt.cpp 284 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/codecvt.cpp
273 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/collate.cpp 285 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/collate.cpp
274 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/converter.cpp 286 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/converter.cpp
275 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/numeric.cpp 287 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/numeric.cpp
276 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/posix_backend.cpp 288 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/posix_backend.cpp
277 ) 289 )
278 290
291 if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten" OR
292 BOOST_LOCALE_BACKEND STREQUAL "iconv")
293 # In WebAssembly or asm.js, we rely on the version of iconv
294 # that is shipped with the stdlib
295 add_definitions(-DBOOST_LOCALE_WITH_ICONV=1)
296 elseif (BOOST_LOCALE_BACKEND STREQUAL "icu")
297 add_definitions(-DBOOST_LOCALE_WITH_ICU=1)
298 list(APPEND BOOST_SOURCES
299 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/boundary.cpp
300 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/codecvt.cpp
301 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/collator.cpp
302 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/conversion.cpp
303 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/date_time.cpp
304 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/formatter.cpp
305 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/icu_backend.cpp
306 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/numeric.cpp
307 ${BOOST_SOURCES_DIR}/libs/locale/src/icu/time_zone.cpp
308 )
309 else()
310 message(FATAL_ERROR "Unsupported value for BOOST_LOCALE_BACKEND: ${BOOST_LOCALE_BACKEND}")
311 endif()
312
313 elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows")
279 add_definitions( 314 add_definitions(
280 -DBOOST_LOCALE_WITH_ICONV=1 315 -DBOOST_LOCALE_NO_POSIX_BACKEND=1
281 -DBOOST_LOCALE_NO_WINAPI_BACKEND=1
282 -DBOOST_LOCALE_NO_STD_BACKEND=1 316 -DBOOST_LOCALE_NO_STD_BACKEND=1
283 ) 317 )
284 318
285 elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows")
286 list(APPEND BOOST_SOURCES 319 list(APPEND BOOST_SOURCES
287 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/collate.cpp 320 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/collate.cpp
288 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/converter.cpp 321 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/converter.cpp
289 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/lcid.cpp 322 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/lcid.cpp
290 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/numeric.cpp 323 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/numeric.cpp
291 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/win_backend.cpp 324 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/win_backend.cpp
292 ) 325 )
293 326
294 add_definitions(
295 -DBOOST_LOCALE_NO_POSIX_BACKEND=1
296 -DBOOST_LOCALE_NO_STD_BACKEND=1
297 )
298
299 # Starting with release 0.8.2, Orthanc statically links against 327 # Starting with release 0.8.2, Orthanc statically links against
300 # libiconv, even on Windows. Indeed, the "WCONV" library of 328 # libiconv, even on Windows. Indeed, the "WCONV" library of
301 # Windows XP seems not to support properly several codepages 329 # Windows XP seems not to support properly several codepages
302 # (notably "Latin3", "Hebrew", and "Arabic"). Set 330 # (notably "Latin3", "Hebrew", and "Arabic"). Set
303 # "USE_BOOST_ICONV" to "OFF" to use WCONV anyway. 331 # "BOOST_LOCALE_BACKEND" to "wconv" to use WCONV anyway.
304 332
305 if (USE_BOOST_ICONV) 333 if (BOOST_LOCALE_BACKEND STREQUAL "iconv")
306 add_definitions(-DBOOST_LOCALE_WITH_ICONV=1) 334 add_definitions(-DBOOST_LOCALE_WITH_ICONV=1)
335 elseif (BOOST_LOCALE_BACKEND STREQUAL "icu")
336 add_definitions(-DBOOST_LOCALE_WITH_ICU=1)
337 elseif (BOOST_LOCALE_BACKEND STREQUAL "wconv")
338 message("Using Window's wconv")
307 else() 339 else()
308 add_definitions(-DBOOST_LOCALE_WITH_WCONV=1) 340 add_definitions(-DBOOST_LOCALE_WITH_WCONV=1)
309 endif() 341 endif()
310 342
311 else() 343 else()