CMakeExpandImportedTargets

已弃用,版本 3.4 起: 此模块不再使用。

以前需要用磁盘上引用的底层库替换 导入的目标,以供 try_compile()try_run() 命令使用。这些命令现在在其 LINK_LIBRARIES 选项中支持导入的目标(自 CMake 2.8.11 起支持 try_compile() 命令,自 CMake 3.2 起支持 try_run() 命令)。

在 CMake 项目中加载此模块,使用

include(CMakeExpandImportedTargets)

注意

此模块不支持策略 CMP0022 NEW 的行为,也不使用 INTERFACE_LINK_LIBRARIES 属性,因为 生成器表达式 无法在配置阶段进行评估。

命令

此模块提供以下命令

cmake_expand_imported_targets

将给定库列表中所有导入的目标展开为其在磁盘上对应的文件路径,并将生成的列表存储在局部变量中。

cmake_expand_imported_targets(
  <result-var>
  LIBRARIES <libs>...
  [CONFIGURATION <config>]
)

参数为

<result-var>

包含文件路径结果列表的 CMake 变量的名称。

LIBRARIES <libs>...

一个 分号分隔的列表,包含系统目标和导入的目标。此列表中的导入目标将被替换为其对应的库文件路径,包括来自其链接接口的库。

CONFIGURATION <config>

如果给定此选项,它将使用导入目标各自的构建配置 <config>(如果存在)。如果省略,则默认为 CMAKE_CONFIGURATION_TYPES 变量的第一个条目,或者回退到 CMAKE_BUILD_TYPE(如果 CMAKE_CONFIGURATION_TYPES 未设置)。

示例

使用此模块获取库路径列表

include(CMakeExpandImportedTargets)
cmake_expand_imported_targets(
  expandedLibs
  LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}
  CONFIGURATION "${CMAKE_TRY_COMPILE_CONFIGURATION}"
)