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_EXECUTABLE
gencnval
可执行文件的路径。ICU_ICUINFO_EXECUTABLE
icuinfo
可执行文件的路径。ICU_GENBRK_EXECUTABLE
genbrk
可执行文件的路径。ICU_ICU-CONFIG_EXECUTABLE
icu-config
可执行文件的路径。ICU_GENRB_EXECUTABLE
genrb
可执行文件的路径。ICU_GENDICT_EXECUTABLE
gendict
可执行文件的路径。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组件库在以下变量中定义
ICU_<COMPONENT>_FOUND
布尔值,指示是否找到ICU组件;
<COMPONENT>
应写为大写。ICU_<COMPONENT>_LIBRARIES
组件的库;
<COMPONENT>
应写为大写。
ICU数据文件在以下变量中定义
ICU_MAKEFILE_INC
Makefile.inc
文件的路径。ICU_PKGDATA_INC
pkgdata.inc
文件的路径。
缓存变量¶
以下缓存变量也可以设置
ICU_<PROGRAM>_EXECUTABLE
可执行文件
<PROGRAM>
的路径;<PROGRAM>
应写为大写。这些变量对应于上面列出的ICU程序结果变量。ICU_INCLUDE_DIR
包含ICU头文件的目录。
ICU_<COMPONENT>_LIBRARY
ICU组件的库。
<COMPONENT>
应写为大写。
提示¶
此模块从以下位置读取搜索结果的提示
ICU_ROOT
ICU安装的根目录。也可以使用环境变量
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)