1

我试图使用 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 不支持生成器表达式吗?

如果不是,我最好的选择是什么?

如果是这样,问题究竟是什么?

4

0 回答 0