Mercurial > hg > orthanc
comparison OrthancFramework/Resources/ThirdParty/icu/CMakeLists.txt @ 4044:d25f4c0fa160 framework
splitting code into OrthancFramework and OrthancServer
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 10 Jun 2020 20:30:34 +0200 |
parents | Resources/ThirdParty/icu/CMakeLists.txt@905ee53c8274 |
children | 304842a0d152 |
comparison
equal
deleted
inserted
replaced
4043:6c6239aec462 | 4044:d25f4c0fa160 |
---|---|
1 cmake_minimum_required(VERSION 2.8) | |
2 project(IcuCodeGeneration) | |
3 | |
4 set(USE_LEGACY_LIBICU OFF CACHE BOOL "Use icu icu4c-58_2, latest version not requiring a C++11 compiler (for LSB and old versions of Visual Studio)") | |
5 | |
6 if (NOT USE_LEGACY_LIBICU) | |
7 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") | |
8 endif() | |
9 | |
10 include(${CMAKE_SOURCE_DIR}/../../CMake/Compiler.cmake) | |
11 include(${CMAKE_SOURCE_DIR}/../../CMake/DownloadPackage.cmake) | |
12 include(Version.cmake) | |
13 | |
14 set(SOURCE_DATA | |
15 "${LIBICU_SOURCES_DIR}/source/data/in/${LIBICU_DATA_VERSION}${LIBICU_SUFFIX}.dat") | |
16 | |
17 set(ALLOW_DOWNLOADS ON) | |
18 DownloadPackage(${LIBICU_MD5} ${LIBICU_URL} "${LIBICU_SOURCES_DIR}") | |
19 | |
20 include_directories( | |
21 ${LIBICU_SOURCES_DIR}/source/common | |
22 ${LIBICU_SOURCES_DIR}/source/i18n | |
23 ${LIBICU_SOURCES_DIR}/source/tools/toolutil/ | |
24 ) | |
25 | |
26 aux_source_directory(${LIBICU_SOURCES_DIR}/source/common LIBICU_SOURCES) | |
27 aux_source_directory(${LIBICU_SOURCES_DIR}/source/i18n LIBICU_SOURCES) | |
28 aux_source_directory(${LIBICU_SOURCES_DIR}/source/tools/toolutil LIBICU_SOURCES) | |
29 | |
30 if (USE_LEGACY_LIBICU) | |
31 list(APPEND LIBICU_SOURCES | |
32 ${LIBICU_SOURCES_DIR}/source/stubdata/stubdata.c | |
33 ) | |
34 else() | |
35 list(APPEND LIBICU_SOURCES | |
36 ${LIBICU_SOURCES_DIR}/source/stubdata/stubdata.cpp | |
37 ) | |
38 set_source_files_properties( | |
39 ${LIBICU_SOURCES_DIR}/source/tools/genccode/genccode.c | |
40 PROPERTIES COMPILE_DEFINITIONS "char16_t=uint16_t" | |
41 ) | |
42 endif() | |
43 | |
44 | |
45 | |
46 add_executable(IcuCodeGeneration | |
47 ${LIBICU_SOURCES_DIR}/source/tools/genccode/genccode.c | |
48 ${LIBICU_SOURCES} | |
49 ) | |
50 | |
51 configure_file(${SOURCE_DATA} | |
52 ${CMAKE_BINARY_DIR}/${LIBICU_DATA_VERSION}.dat | |
53 COPYONLY) | |
54 | |
55 add_custom_command( | |
56 OUTPUT ${CMAKE_BINARY_DIR}/${LIBICU_DATA} | |
57 COMMAND IcuCodeGeneration ${CMAKE_BINARY_DIR}/${LIBICU_DATA_VERSION}.dat | |
58 DEPENDS IcuCodeGeneration | |
59 ) | |
60 | |
61 # "--no-name" is necessary for 7-zip on Windows to behave similarly to gunzip | |
62 add_custom_command( | |
63 OUTPUT ${CMAKE_BINARY_DIR}/${LIBICU_DATA}.gz | |
64 COMMAND gzip ${CMAKE_BINARY_DIR}/${LIBICU_DATA_VERSION}_dat.c --no-name -c > ${CMAKE_BINARY_DIR}/${LIBICU_DATA}.gz | |
65 DEPENDS ${LIBICU_DATA} | |
66 ) | |
67 | |
68 | |
69 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") | |
70 # Generate a precompiled version for Visual Studio 64bit | |
71 set(TMP_ASSEMBLER ${CMAKE_BINARY_DIR}/${LIBICU_DATA_VERSION}_dat.S) | |
72 set(TMP_OBJECT ${CMAKE_BINARY_DIR}/${LIBICU_DATA_VERSION}_dat-x86_64-mingw32.o) | |
73 set(TMP_LIBRARY ${CMAKE_BINARY_DIR}/${LIBICU_DATA_VERSION}_dat-x86_64-mingw32.lib) | |
74 set(PRECOMPILED_WIN64 ${CMAKE_BINARY_DIR}/${LIBICU_DATA_VERSION}_dat-x86_64-mingw32.lib.gz) | |
75 | |
76 add_custom_command( | |
77 OUTPUT ${TMP_ASSEMBLER} | |
78 COMMAND IcuCodeGeneration ${CMAKE_BINARY_DIR}/${LIBICU_DATA_VERSION}.dat --assembly gcc-mingw64 | |
79 DEPENDS IcuCodeGeneration | |
80 ) | |
81 | |
82 add_custom_command( | |
83 OUTPUT ${TMP_OBJECT} | |
84 COMMAND x86_64-w64-mingw32-gcc -c ${TMP_ASSEMBLER} -o ${TMP_OBJECT} | |
85 DEPENDS ${TMP_ASSEMBLER} | |
86 ) | |
87 | |
88 add_custom_command( | |
89 OUTPUT ${TMP_LIBRARY} | |
90 COMMAND x86_64-w64-mingw32-ar qc ${TMP_LIBRARY} ${TMP_OBJECT} | |
91 COMMAND x86_64-w64-mingw32-ranlib ${TMP_LIBRARY} | |
92 DEPENDS ${TMP_OBJECT} | |
93 ) | |
94 | |
95 # "--no-name" is necessary for 7-zip on Windows to behave similarly to gunzip | |
96 add_custom_command( | |
97 OUTPUT ${PRECOMPILED_WIN64} | |
98 COMMAND gzip ${TMP_LIBRARY} --no-name -c > ${PRECOMPILED_WIN64} | |
99 DEPENDS ${TMP_LIBRARY} | |
100 ) | |
101 endif() | |
102 | |
103 | |
104 add_custom_target(Final ALL DEPENDS | |
105 ${CMAKE_BINARY_DIR}/${LIBICU_DATA}.gz | |
106 ${PRECOMPILED_WIN64} | |
107 ) | |
108 | |
109 install( | |
110 FILES | |
111 ${CMAKE_BINARY_DIR}/${LIBICU_DATA}.gz | |
112 ${PRECOMPILED_WIN64} | |
113 DESTINATION ${CMAKE_SOURCE_DIR}/../../../ThirdPartyDownloads | |
114 ) | |
115 | |
116 add_definitions( | |
117 #-DU_COMBINED_IMPLEMENTATION | |
118 -DUCONFIG_NO_SERVICE=1 | |
119 -DU_COMMON_IMPLEMENTATION | |
120 -DU_ENABLE_DYLOAD=0 | |
121 -DU_HAVE_STD_STRING=1 | |
122 -DU_I18N_IMPLEMENTATION | |
123 -DU_IO_IMPLEMENTATION | |
124 -DU_STATIC_IMPLEMENTATION=1 | |
125 -DU_TOOLUTIL_IMPLEMENTATION | |
126 ) |