CMakeExpandImportedTargets

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

它曾用于替换 导入的目标 为其在磁盘上引用的底层库,以便与 try_compile()try_run() 命令一起使用。这些命令现在在其 LINK_LIBRARIES 选项中支持导入的目标(对于 try_compile() 命令自 CMake 2.8.11 起,对于 try_run() 命令自 CMake 3.2 起)。

在 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_CONFIGURATION_TYPES 未设置时回退到 CMAKE_BUILD_TYPE

示例

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

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