Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
3250:212abfffc44d | 3251:fcfd4f73228c |
---|---|
7 message("Using libicu") | 7 message("Using libicu") |
8 | 8 |
9 if (STATIC_BUILD OR NOT USE_SYSTEM_LIBICU) | 9 if (STATIC_BUILD OR NOT USE_SYSTEM_LIBICU) |
10 include(${CMAKE_CURRENT_LIST_DIR}/../ThirdParty/icu/Version.cmake) | 10 include(${CMAKE_CURRENT_LIST_DIR}/../ThirdParty/icu/Version.cmake) |
11 DownloadPackage(${LIBICU_MD5} ${LIBICU_URL} "${LIBICU_SOURCES_DIR}") | 11 DownloadPackage(${LIBICU_MD5} ${LIBICU_URL} "${LIBICU_SOURCES_DIR}") |
12 DownloadCompressedFile(${LIBICU_DATA_MD5} ${LIBICU_DATA_URL} ${LIBICU_DATA}) | 12 |
13 if (MSVC) | |
14 # In Visual Studio 2015, we get the following error if using plain | |
15 # C: "icudt58l_dat.c(1638339): fatal error C1060: compiler is out | |
16 # of heap space" => use Microsoft Assembler to circumvent this issue | |
17 DownloadCompressedFile(${LIBICU_MASM_MD5} ${LIBICU_MASM_URL} ${LIBICU_MASM}) | |
18 | |
19 set(LIBICU_SOURCES | |
20 ${CMAKE_BINARY_DIR}/${LIBICU_MASM} | |
21 ) | |
22 else() | |
23 # Use plain C data library | |
24 DownloadCompressedFile(${LIBICU_DATA_MD5} ${LIBICU_DATA_URL} ${LIBICU_DATA}) | |
25 | |
26 set_source_files_properties( | |
27 ${CMAKE_BINARY_DIR}/${LIBICU_DATA} | |
28 PROPERTIES COMPILE_DEFINITIONS "char16_t=uint16_t" | |
29 ) | |
30 | |
31 set(LIBICU_SOURCES | |
32 ${CMAKE_BINARY_DIR}/${LIBICU_DATA} | |
33 ) | |
34 endif() | |
13 | 35 |
14 include_directories(BEFORE | 36 include_directories(BEFORE |
15 ${LIBICU_SOURCES_DIR}/source/common | 37 ${LIBICU_SOURCES_DIR}/source/common |
16 ${LIBICU_SOURCES_DIR}/source/i18n | 38 ${LIBICU_SOURCES_DIR}/source/i18n |
17 ) | |
18 | |
19 set(LIBICU_SOURCES | |
20 ${CMAKE_BINARY_DIR}/${LIBICU_DATA} | |
21 ) | 39 ) |
22 | 40 |
23 aux_source_directory(${LIBICU_SOURCES_DIR}/source/common LIBICU_SOURCES) | 41 aux_source_directory(${LIBICU_SOURCES_DIR}/source/common LIBICU_SOURCES) |
24 aux_source_directory(${LIBICU_SOURCES_DIR}/source/i18n LIBICU_SOURCES) | 42 aux_source_directory(${LIBICU_SOURCES_DIR}/source/i18n LIBICU_SOURCES) |
25 | 43 |
37 -DU_STATIC_IMPLEMENTATION=1 | 55 -DU_STATIC_IMPLEMENTATION=1 |
38 #-DU_CHARSET_IS_UTF8 | 56 #-DU_CHARSET_IS_UTF8 |
39 -DUNISTR_FROM_STRING_EXPLICIT= | 57 -DUNISTR_FROM_STRING_EXPLICIT= |
40 ) | 58 ) |
41 | 59 |
42 set_source_files_properties( | 60 if (CMAKE_SYSTEM_NAME STREQUAL "Windows") |
43 ${CMAKE_BINARY_DIR}/${LIBICU_DATA} | |
44 PROPERTIES COMPILE_DEFINITIONS "char16_t=uint16_t" | |
45 ) | |
46 | |
47 if(CMAKE_SYSTEM_NAME STREQUAL "Windows") | |
48 set_source_files_properties( | 61 set_source_files_properties( |
49 ${LIBICU_SOURCES_DIR}/source/common/locmap.c | 62 ${LIBICU_SOURCES_DIR}/source/common/locmap.c |
50 PROPERTIES COMPILE_DEFINITIONS "LOCALE_SNAME=0x0000005c" | 63 PROPERTIES COMPILE_DEFINITIONS "LOCALE_SNAME=0x0000005c" |
51 ) | 64 ) |
52 endif() | 65 endif() |