FindLibXslt¶
查找 XSL 转换、可扩展样式表语言转换 (XSLT) 库 (libxslt)。
导入的目标¶
在 3.18 版本中新增。
此模块提供以下 导入目标
LibXslt::LibXslt
封装 libxslt 库使用要求的Target。此Target仅在找到 libxslt 时可用。
LibXslt::LibExslt
封装 libexslt 库使用要求的Target。作为 libxslt 包的一部分,libexslt 在 libxslt 的基础上提供了 XSLT 的可选扩展。此Target仅在找到主 libxslt 库时可用。
LibXslt::xsltproc
封装命令行 XSLT 处理器 (
xsltproc
) 的Target。此工具作为 libxslt 包的一部分,将 XSLT 样式表应用于 XML 文档,作为 libxslt 库的命令行替代方案。此Target仅在找到xsltproc
可执行文件时可用。
结果变量¶
此模块设置以下变量
LibXslt_FOUND
布尔值,指示是否找到 libxslt。为了向后兼容,
LIBXSLT_FOUND
变量也被设置为相同的值。LIBXSLT_LIBRARIES
链接到 libxslt 所需的库。
LIBXSLT_DEFINITIONS
使用 libxslt 所需的编译器开关。
LIBXSLT_VERSION_STRING
找到的 libxslt 版本。
LIBXSLT_EXSLT_LIBRARIES
链接 exslt 库时所需的库。这些库仅在使用 exslt 库时可用并需要。
缓存变量¶
以下缓存变量也可以设置
LIBXSLT_INCLUDE_DIR
包含
libxslt/xslt.h
和其他 libxslt 头文件的目录。LIBXSLT_EXSLT_INCLUDE_DIR
在 3.18 版本中新增。
包含
libexslt/exslt.h
和其他 exslt 相关头文件的目录。这些仅在使用 exslt(XSLT 的扩展)时才需要。LIBXSLT_XSLTPROC_EXECUTABLE
如果找到 XSLT 处理器可执行文件
xsltproc
,则为完整路径。此路径是可选的。
示例¶
查找 libxslt 库并将其链接到项目Target
find_package(LibXslt)
target_link_libraries(foo PRIVATE LibXslt::LibXslt)
当项目还需要 XSLT 的扩展(exslt)库时,两个Target都应该被链接
find_package(LibXslt)
target_link_libraries(foo PRIVATE LibXslt::LibXslt LibXslt::LibExslt)
示例:如何在自定义命令构建规则中使用 XSLT 处理器
find_package(LibXslt)
if(TARGET LibXslt::xsltproc)
# Executed when some build rule depends on example.html.
add_custom_command(
OUTPUT example.html
COMMAND LibXslt::xsltproc -o example.html transform.xslt example.xml
)
endif()