blob: 472f3d88a4d3b0888be74a7ce083f39f5aad4e32 [file] [log] [blame]
# Minimum CMake required
cmake_minimum_required(VERSION 3.1.3)
# Project
project(libandroidicu C CXX)
add_definitions("-DANDROID_LINK_SHARED_ICU4C")
# Add other source dirs that icuuc uses
set(ICU_CONFIG_LOCAL_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../android_icu4c/include")
# Compile icuuc
set(ICUUC_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../icu4c/source/common")
# Compile icui18n
set(ICU_I18N_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../icu4c/source/i18n")
set(ICU_I18N_TARGET_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libicui18n-target")
add_subdirectory(${ICU_I18N_SOURCE_DIR} ${ICU_I18N_TARGET_BINARY_DIR})
# Glob shim sources
set(ICU_SHIM_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
file(
GLOB_RECURSE
ICU_STATIC_SHIM_CC_SOURCES
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"${ICU_SHIM_SOURCE_DIR}/*.cpp"
"${ICU_SHIM_SOURCE_DIR}/*.h"
)
message(STATUS "ICU_STATIC_SHIM_CC_SOURCES=${ICU_STATIC_SHIM_CC_SOURCES}")
add_library(
# name
libandroidicu
# SHARED or STATIC
STATIC
# Provides a relative path to your source file(s).
${ICU_STATIC_SHIM_CC_SOURCES}
)
target_include_directories(libandroidicu PRIVATE ${ICUUC_SOURCE_DIR})
target_include_directories(libandroidicu PRIVATE ${ICU_CONFIG_LOCAL_SOURCE_DIR})
target_include_directories(libandroidicu PRIVATE ${ICU_I18N_SOURCE_DIR})
target_include_directories(libandroidicu PRIVATE ${ICU_STATIC_SHIM_CC_SOURCES})
target_link_libraries(libandroidicu icui18n)
set_target_properties(libandroidicu PROPERTIES LINKER_LANGUAGE CXX)