summaryrefslogtreecommitdiff
path: root/icu4c/source/common/CMakeLists.txt
blob: 8ff8bced74163becbd068ea163d722958a44656a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Minimum CMake required
cmake_minimum_required(VERSION 3.1.3)

# Project
project(icuuc C CXX)

add_definitions("-DANDROID_LINK_SHARED_ICU4C")
add_definitions("-DU_COMMON_IMPLEMENTATION")
add_definitions("-D_REENTRANT")

# To suppress deprecated declarations for 'uidna_toASCII_68'
add_definitions("-Wno-deprecated-declarations")

# Compile icuuc_stubdata
set(ICUUC_STUB_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../stubdata")
set(ICUUC_STUB_TARGET_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libicuuc_stubdata-target")
add_subdirectory(${ICUUC_STUB_SOURCE_DIR} ${ICUUC_STUB_TARGET_BINARY_DIR})

# Compile androidicuinit
set(ANDROIDICUINIT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../libandroidicuinit")
set(ANDROIDICUINIT_TARGET_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/androidicu_init-target")
add_subdirectory(${ANDROIDICUINIT_SOURCE_DIR} ${ANDROIDICUINIT_TARGET_BINARY_DIR})

# Add android_icu4c headers
set(ICU_CONFIG_LOCAL_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../android_icu4c/include")

# Glob icu common source files
file(
   GLOB_RECURSE
   ICU_COMMON_CC_SOURCES
   RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
   "*.h" "*.cpp"
)
message(STATUS "ICU_COMMON_CC_SOURCES=${ICU_COMMON_CC_SOURCES}")

add_library(
   # name
   icuuc

   # SHARED or STATIC
   STATIC

   # Provides a relative path to your source file(s).
   ${ICU_COMMON_CC_SOURCES}
)
target_include_directories(icuuc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(icuuc PRIVATE ${ICU_CONFIG_LOCAL_SOURCE_DIR})
target_include_directories(icuuc PRIVATE "${ANDROIDICUINIT_SOURCE_DIR}/include")
target_link_libraries(icuuc icuuc_stubdata androidicuinit)

set_target_properties(icuuc PROPERTIES LINKER_LANGUAGE CXX)