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()