CMake script supplying ICU
libraries conveniently, encapsulating the
ICU
build system on various platforms.
See the CI configuration for examples on (cross) compiling.
- Allows usage of system ICU
- Allows trivial and complex building of ICU
- Allows cross compilation, especially for Android
- Defaults to prebuilt binaries
To use the system ICU, simply set SYSTEM_ICU=ON
.
Default behaviour is the download of a prebuilt binary. This is only intended as a convenience for debugging purposes and NOT for production use. Available prebuilt binaries can be viewed here. The prebuilt Windows binaries are built with MinGW-w64, so they may not be compatible with MSVC.
In order to build ICU
, set BUILD_ICU=ON
along with the version, for example ICU_BUILD_VERSION=61.1
.
For source package integrity, an optional SHA256 ICU_BUILD_HASH
can be supplied.
Cross compilation is enabled using ICU_CROSS_ARCH=<architecture triplet>
to specify the target.
Android requires the cross compile triplet as well as standard Android CMake toolchain configuration options.
These options are not required when using ICU-CMake
from Gradle's native build system.
- Add
ICU-CMake
as a submodule to your Git project usinggit submodule add <URL> external/icu-cmake
- Initialize the submodule using
git submodule update --init --recursive
- In your
CMakeLists.txt
include the directory usingadd_subdirectory(external/icu-cmake)
- Link against the
icu
target, which will also include the headers
These scripts, unless otherwise stated, are subject to the MIT license.