xref: /aosp_15_r20/external/icu/libandroidicu/static_shim/CMakeLists.txt (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
1# Minimum CMake required
2cmake_minimum_required(VERSION 3.1.3)
3
4# Project
5project(libandroidicu C CXX)
6
7add_definitions("-DANDROID_LINK_SHARED_ICU4C")
8
9# Add other source dirs that icuuc uses
10set(ICU_CONFIG_LOCAL_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../android_icu4c/include")
11
12# Compile icuuc
13set(ICUUC_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../icu4c/source/common")
14
15# Compile icui18n
16set(ICU_I18N_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../icu4c/source/i18n")
17set(ICU_I18N_TARGET_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libicui18n-target")
18add_subdirectory(${ICU_I18N_SOURCE_DIR} ${ICU_I18N_TARGET_BINARY_DIR})
19
20# Glob shim sources
21set(ICU_SHIM_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
22file(
23   GLOB_RECURSE
24   ICU_STATIC_SHIM_CC_SOURCES
25   RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
26   "${ICU_SHIM_SOURCE_DIR}/*.cpp"
27   "${ICU_SHIM_SOURCE_DIR}/*.h"
28)
29message(STATUS "ICU_STATIC_SHIM_CC_SOURCES=${ICU_STATIC_SHIM_CC_SOURCES}")
30
31add_library(
32   # name
33   libandroidicu
34
35   # SHARED or STATIC
36   STATIC
37
38   # Provides a relative path to your source file(s).
39   ${ICU_STATIC_SHIM_CC_SOURCES}
40)
41target_include_directories(libandroidicu PRIVATE ${ICUUC_SOURCE_DIR})
42target_include_directories(libandroidicu PRIVATE ${ICU_CONFIG_LOCAL_SOURCE_DIR})
43target_include_directories(libandroidicu PRIVATE ${ICU_I18N_SOURCE_DIR})
44target_include_directories(libandroidicu PRIVATE ${ICU_STATIC_SHIM_CC_SOURCES})
45target_link_libraries(libandroidicu icui18n)
46
47set_target_properties(libandroidicu PROPERTIES LINKER_LANGUAGE CXX)
48
49