1

是否可以在一个命令中使用 if 语句add_custom_target?我想出了

add_custom_target(target                 
             if(linux)
               message("Linux!")
             endif()
)

但它失败了:

/bin/sh: 1: Syntax error: word unexpected (expecting "then").

当我then在末尾添加时if(linux),它失败了:

/bin/sh: 1: Syntax error: word unexpected (expecting ")")

为什么这不起作用?不能在 add_custom_target 中进行测试吗?我的意图是根据操作系统在 add_custom_target 中做不同的事情。我还考虑过定义一个在 add_custom_target 中调用的函数,但这也不起作用。这种方法不允许我写一个make也有问题的普通话。

4

2 回答 2

2

您应该在外部使用 if 语句ADD_CUSTOM_TARGET

if(linux)
    add_custom_target(target message("Linux!"))
elseif(win32)
    add_custom_target(target message("Windows!"))
endif()
于 2013-05-03T22:34:10.883 回答
2

我通过将代码移动到 cmake-script 并通过 cmake 的脚本处理模式在 add_custom_target 中调用此脚本来解决我的问题:cmake -P

于 2013-05-05T11:44:04.607 回答