Mercurial > hg > orthanc
diff Resources/CMake/LibIcuConfiguration.cmake @ 3251:fcfd4f73228c
using masm if compiling icu with Visual Studio
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 16 Feb 2019 14:28:53 +0100 |
parents | 8b091a51b1b9 |
children | 759cc438886e |
line wrap: on
line diff
--- a/Resources/CMake/LibIcuConfiguration.cmake Sat Feb 16 11:38:54 2019 +0100 +++ b/Resources/CMake/LibIcuConfiguration.cmake Sat Feb 16 14:28:53 2019 +0100 @@ -9,17 +9,35 @@ if (STATIC_BUILD OR NOT USE_SYSTEM_LIBICU) include(${CMAKE_CURRENT_LIST_DIR}/../ThirdParty/icu/Version.cmake) DownloadPackage(${LIBICU_MD5} ${LIBICU_URL} "${LIBICU_SOURCES_DIR}") - DownloadCompressedFile(${LIBICU_DATA_MD5} ${LIBICU_DATA_URL} ${LIBICU_DATA}) + + if (MSVC) + # In Visual Studio 2015, we get the following error if using plain + # C: "icudt58l_dat.c(1638339): fatal error C1060: compiler is out + # of heap space" => use Microsoft Assembler to circumvent this issue + DownloadCompressedFile(${LIBICU_MASM_MD5} ${LIBICU_MASM_URL} ${LIBICU_MASM}) + + set(LIBICU_SOURCES + ${CMAKE_BINARY_DIR}/${LIBICU_MASM} + ) + else() + # Use plain C data library + DownloadCompressedFile(${LIBICU_DATA_MD5} ${LIBICU_DATA_URL} ${LIBICU_DATA}) + + set_source_files_properties( + ${CMAKE_BINARY_DIR}/${LIBICU_DATA} + PROPERTIES COMPILE_DEFINITIONS "char16_t=uint16_t" + ) + + set(LIBICU_SOURCES + ${CMAKE_BINARY_DIR}/${LIBICU_DATA} + ) + endif() include_directories(BEFORE ${LIBICU_SOURCES_DIR}/source/common ${LIBICU_SOURCES_DIR}/source/i18n ) - set(LIBICU_SOURCES - ${CMAKE_BINARY_DIR}/${LIBICU_DATA} - ) - aux_source_directory(${LIBICU_SOURCES_DIR}/source/common LIBICU_SOURCES) aux_source_directory(${LIBICU_SOURCES_DIR}/source/i18n LIBICU_SOURCES) @@ -39,12 +57,7 @@ -DUNISTR_FROM_STRING_EXPLICIT= ) - set_source_files_properties( - ${CMAKE_BINARY_DIR}/${LIBICU_DATA} - PROPERTIES COMPILE_DEFINITIONS "char16_t=uint16_t" - ) - - if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + if (CMAKE_SYSTEM_NAME STREQUAL "Windows") set_source_files_properties( ${LIBICU_SOURCES_DIR}/source/common/locmap.c PROPERTIES COMPILE_DEFINITIONS "LOCALE_SNAME=0x0000005c"