在自定义目标的生成器表达式中引用目标的属性

时间:2020-01-27 13:17:06

标签: cmake

CMake版本:3.16.2


我正在尝试为CMake编写自定义目标,这使我可以从已知目标中获取一些属性。

我有此代码:

add_custom_target(target_printer
    COMMAND ${CMAKE_COMMAND} -E echo "$<TARGET_PROPERTY:known_target, BINARY_DIR>"
)

在配置步骤中,我遇到了下一个问题:

Error evaluating generator expression:
 $<TARGET_PROPERTY:known_target, BINARY_DIR>

Property name not supported.

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

使用生成器表达式检索CMake目标的属性之一时,CMake首先验证所请求的属性有效。在此验证过程中,CMake将通过正则表达式检查提供的属性BINARY_DIR是否为格式正确的CMake属性。它是有效的属性,但是由于属性名称旁边提供了额外的空间,因此验证失败。生成器表达式具有非常特定于 的语法(相关示例here),在这种情况下,属性名称BINARY_DIR周围不允许不允许。尝试删除BINARY_DIR前的多余空间:

add_custom_target(target_printer
    COMMAND ${CMAKE_COMMAND} -E echo "$<TARGET_PROPERTY:known_target,BINARY_DIR>"
)