rapids_cpm_spdlog
在版本 v21.10.00 中添加。
允许项目通过 CPM 查找或构建 spdlog,并内置跟踪这些依赖项以支持正确的导出。
使用版本文件 中指定的 spdlog 版本,以确保所有 RAPIDS 项目的一致性。
rapids_cpm_spdlog( [FMT_OPTION <fmt-option-name>]
[BUILD_EXPORT_SET <export-name>]
[INSTALL_EXPORT_SET <export-name>]
[<CPM_ARGS> ...])
FMT_OPTION
.. 版本新增:: v23.04.00
Spdlog 依赖于 fmt 库,并在构建 spdlog 时提供多种处理此依赖项的方式。此选项仅控制在获取和构建 spdlog 时的行为,不控制在系统上找到已安装的 spdlog 时的行为。
此选项可设置为:BUNDLED、EXTERNAL_FMT、EXTERNAL_FMT_HO 或 STD_FORMAT。如果设置为 BUNDLED,则 spdlog 将使用其自带的 fmt 版本。如果设置为 EXTERNAL_FMT,则 spdlog 将使用 fmt::fmt 目标并链接到 fmt 库。如果设置为 EXTERNAL_FMT_HO,则 spdlog 将使用 fmt::fmt-header-only 目标并链接到仅头文件的 fmt 库。如果设置为 STD_FORMAT,则 spdlog 将使用 std::format 而非 fmt 库。
默认为 EXTERNAL_FMT_HO。
BUILD_EXPORT_SET
记录我们的构建目录导出集中需要为 spdlog 执行
CPMFindPackage()
。INSTALL_EXPORT_SET
记录我们的安装目录导出集中需要为 spdlog 执行
find_dependency()
。
注意
如果提供了 INSTALL_EXPORT_SET,并且通过 CPM 的 add_subdirectory
将 spdlog 添加到项目中,则会安装 spdlog。
CPM_ARGS
CPM_ARGS 后的任何参数都将转发到底层的 spdlog
CPMFindPackage()`
调用。
结果目标
将创建 spdlog::spdlog、spdlog::spdlog_header_only 目标
结果变量
spdlog_SOURCE_DIR
设置为 spdlog 的源目录路径。spdlog_BINARY_DIR
设置为 spdlog 的构建目录路径。spdlog_ADDED
如果 spdlog 之前未添加过,则设置为真值。spdlog_VERSION
设置为 versions.json 中指定的 spdlog 版本。spdlog_fmt_target
设置为所使用的 fmt 目标(如果使用了的话)