可以在add_custom_target
的一个命令中使用if语句吗?我想出了
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中调用的函数,但这也不起作用。该appproach不允许我写一个简单的make
,这也是有问题的。
答案 0 :(得分:2)
您应该使用ADD_CUSTOM_TARGET
以外的if语句:
if(linux)
add_custom_target(target message("Linux!"))
elseif(win32)
add_custom_target(target message("Windows!"))
endif()
答案 1 :(得分:2)
我通过将代码移动到cmake脚本并通过cmake的脚本处理模式在add_custom_target中调用此脚本来解决我的问题:cmake -P