FindICU

在 3.7 版被加入.

Finds the International Components for Unicode (ICU) libraries and programs:

find_package(ICU [<version>] COMPONENTS <components>... [...])

在 3.11 版被加入: Support for static libraries on Windows.

Components

This module supports components, which can be specified with:

find_package(ICU COMPONENTS <components>...)

The following components are supported:

data

Finds the ICU Data library. On Windows, this library component is named dt, otherwise any of these component names may be used, and the appropriate platform-specific library name will be automatically selected.

i18n

Finds the ICU Internationalization library. On Windows, this library component is named in, otherwise any of these component names may be used, and the appropriate platform-specific library name will be automatically selected.

io

Finds the ICU Stream and I/O (Unicode stdio) library.

le

Finds the deprecated ICU Layout Engine library, which has been removed as of ICU version 58.

lx

Finds the ICU Layout Extensions Engine library, used for paragraph layout.

test

Finds the ICU test suits.

tu

Finds the ICU Tool Utility library.

uc

Finds the base ICU Common and Data libraries. This library is required by all other ICU libraries and is recommended to include when working with ICU components.

At least one component should be specified for this module to successfully find ICU.

Imported Targets

This module provides the following Imported Targets:

ICU::<component>

Target encapsulating the usage requirements for the specified ICU component, available only if that component is found. The <component> should be written in lowercase, as listed above. For example, use ICU::i18n for the Internationalization library.

結果變數

該模組定義了以下變數:

ICU_FOUND

Boolean indicating whether the (requested version of) main ICU programs and libraries were found.

ICU_VERSION

The version of the ICU release found.

ICU_INCLUDE_DIRS

The include directories containing the ICU headers.

ICU_LIBRARIES

Component libraries to be linked.

ICU programs are defined in the following variables:

ICU_GENCNVAL_EXECUTABLE

The path to the gencnval executable.

ICU_ICUINFO_EXECUTABLE

icuinfo 執行檔的路徑。

ICU_GENBRK_EXECUTABLE

genbrk 執行檔的路徑。

ICU_ICU-CONFIG_EXECUTABLE

The path to the icu-config executable.

ICU_GENRB_EXECUTABLE

The path to the genrb executable.

ICU_GENDICT_EXECUTABLE

The path to the gendict executable.

ICU_DERB_EXECUTABLE

derb 執行檔的路徑。

ICU_PKGDATA_EXECUTABLE

pkgdata 執行檔的路徑。

ICU_UCONV_EXECUTABLE

uconv 執行檔的路徑。

ICU_GENCFU_EXECUTABLE

gencfu 執行檔的路徑。

ICU_MAKECONV_EXECUTABLE

makeconv 執行檔的路徑。

ICU_GENNORM2_EXECUTABLE

gennorm2 執行檔的路徑。

ICU_GENCCODE_EXECUTABLE

genccode 執行檔的路徑。

ICU_GENSPREP_EXECUTABLE

gensprep 執行檔的路徑。

ICU_ICUPKG_EXECUTABLE

icupkg 執行檔的路徑。

ICU_GENCMN_EXECUTABLE

gencmn 執行檔的路徑。

ICU component libraries are defined in the following variables:

ICU_<COMPONENT>_FOUND

Boolean indicating whether the ICU component was found; The <COMPONENT> should be written in uppercase.

ICU_<COMPONENT>_LIBRARIES

Libraries for component; The <COMPONENT> should be written in uppercase.

ICU datafiles are defined in the following variables:

ICU_MAKEFILE_INC

The path to the Makefile.inc file.

ICU_PKGDATA_INC

The path to the pkgdata.inc file.

快取變數

The following cache variables may also be set:

ICU_<PROGRAM>_EXECUTABLE

The path to executable <PROGRAM>; The <PROGRAM> should be written in uppercase. These variables correspond to the ICU program result variables listed above.

ICU_INCLUDE_DIR

The directory containing the ICU headers.

ICU_<COMPONENT>_LIBRARY

The library for the ICU component. The <COMPONENT> should be written in uppercase.

提示

This module reads hints about search results from:

ICU_ROOT

The root of the ICU installation. The environment variable ICU_ROOT may also be used; the ICU_ROOT variable takes precedence.

備註

In most cases, none of the above variables will need to be set, unless multiple versions of ICU are available and a specific version is required.

範例

Finding ICU components and linking them to a project target:

find_package(ICU COMPONENTS i18n io uc)
target_link_libraries(project_target PRIVATE ICU::i18n ICU::io ICU::uc)