我试图使用 CMake 生成器表达式,例如:
$<TARGET_GENEX_EVAL:foo,$<TARGET_PROPERTY:$<TARGET_NAME_IF_EXISTS:foo>,PROP_BAR>>
当使用的生成器是 Visual Studio 或 Unix Makefiles 时,此表达式可以正常工作,但当使用的生成器是 Ninja 时会失败,并出现以下错误:
CMake Error at cmake/<fname>.cmake:629 (add_custom_command):
Error evaluating generator expression:
$<TARGET_GENEX_EVAL:foo,$<TARGET_PROPERTY:$<TARGET_NAME_IF_EXISTS:foo>,PROP_BAR>>
Expression did not evaluate to a known generator expression
Call Stack (most recent call first):
cmake/<fname>.cmake:1269
<target>/CMakeLists.txt:16
Ninja 不支持生成器表达式吗?
如果不是,我最好的选择是什么?
如果是这样,问题究竟是什么?