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()