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.
有什么建议吗?
答案 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>"
)