FindICU¶
3.7 版本中新增。
查找国际组件Unicode(ICU)库和程序。
版本 3.11 中新增: 支持Windows上的静态库。
组件¶
此模块支持以下组件
data查找ICU Data库。在Windows上,此库组件的名称为
dt,否则可以使用任何这些组件名称,并且会自动选择相应的平台特定库名。i18n查找ICU Internationalization库。在Windows上,此库组件的名称为
in,否则可以使用任何这些组件名称,并且会自动选择相应的平台特定库名。io查找ICU Stream和I/O(Unicode stdio)库。
le查找已弃用的ICU Layout Engine库,该库已在ICU版本58中移除。
lx查找ICU Layout Extensions Engine库,用于段落布局。
测试查找ICU测试套件。
tu查找ICU Tool Utility库。
uc查找基础ICU Common和Data库。所有其他ICU库都需要此库,并且建议在处理ICU组件时包含它。
此模块要成功找到ICU,至少应指定一个组件
find_package(ICU COMPONENTS <components>...)
导入的目标¶
此模块提供以下 导入目标
ICU::<component>
封装指定ICU组件使用需求的Target,仅在找到该组件时可用。
<component>应写为小写,如上所示。例如,国际化库使用ICU::i18n。
结果变量¶
此模块定义了以下变量
ICU_FOUND布尔值,指示是否找到主程序和库。
ICU_INCLUDE_DIRS包含ICU头文件的目录。
ICU_LIBRARIES要链接的组件库。
ICU_VERSION找到的ICU发行版的版本。
ICU程序在以下变量中定义
ICU_GENCNVAL_EXECUTABLEgencnval可执行文件的路径。ICU_ICUINFO_EXECUTABLEicuinfo可执行文件的路径。ICU_GENBRK_EXECUTABLEgenbrk可执行文件的路径。ICU_ICU-CONFIG_EXECUTABLEicu-config可执行文件的路径。ICU_GENRB_EXECUTABLEgenrb可执行文件的路径。ICU_GENDICT_EXECUTABLEgendict可执行文件的路径。ICU_DERB_EXECUTABLEderb可执行文件的路径。ICU_PKGDATA_EXECUTABLEpkgdata可执行文件的路径。ICU_UCONV_EXECUTABLEuconv可执行文件的路径。ICU_GENCFU_EXECUTABLEgencfu可执行文件的路径。ICU_MAKECONV_EXECUTABLEmakeconv可执行文件的路径。ICU_GENNORM2_EXECUTABLEgennorm2可执行文件的路径。ICU_GENCCODE_EXECUTABLEgenccode可执行文件的路径。ICU_GENSPREP_EXECUTABLEgensprep可执行文件的路径。ICU_ICUPKG_EXECUTABLEicupkg可执行文件的路径。ICU_GENCMN_EXECUTABLEgencmn可执行文件的路径。
ICU组件库在以下变量中定义
ICU_<COMPONENT>_FOUND布尔值,指示是否找到ICU组件;
<COMPONENT>应写为大写。ICU_<COMPONENT>_LIBRARIES组件的库;
<COMPONENT>应写为大写。
ICU数据文件在以下变量中定义
ICU_MAKEFILE_INCMakefile.inc文件的路径。ICU_PKGDATA_INCpkgdata.inc文件的路径。
缓存变量¶
以下缓存变量也可以设置
ICU_<PROGRAM>_EXECUTABLE可执行文件
<PROGRAM>的路径;<PROGRAM>应写为大写。这些变量对应于上面列出的ICU程序结果变量。ICU_INCLUDE_DIR包含ICU头文件的目录。
ICU_<COMPONENT>_LIBRARYICU组件的库。
<COMPONENT>应写为大写。
提示¶
此模块从以下位置读取搜索结果的提示
ICU_ROOTICU安装的根目录。也可以使用环境变量
ICU_ROOT;ICU_ROOT变量具有优先权。
注意
在大多数情况下,不需要设置以上任何变量,除非有多个ICU版本可用且需要特定版本。
示例¶
查找ICU组件并将其链接到项目Target
find_package(ICU COMPONENTS i18n io uc)
target_link_libraries(project_target PRIVATE ICU::i18n ICU::io ICU::uc)