else(expression)
else section.
COMMAND1(ARGS …)
COMMAND2(ARGS …)
#…
endif(expression)
此处有一点注意:else和endif中的表达式是可以省略的,看到现在大部分网上的教程有必须加SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
这句才能省略表达式,一脸懵逼,关于那个变量,我也查不到api,包括废弃的,所以我都不写这句。
if表达式可以用长表达式,优先级顺序如下:
EXISTS, COMMAND, DEFINED
EQUAL, LESS, LESS_EQUAL, GREATER, GREATER_EQUAL, STREQUAL, STRLESS, STRLESS_EQUAL, STRGREATER, STRGREATER_EQUAL, VERSION_EQUAL, VERSION_LESS, VERSION_LESS_EQUAL, VERSION_GREATER, VERSION_GREATER_EQUAL, MATCHES
NOT,AND,OR
别看下面这张表很长,其实没什么内容:
表达式 | true | false | 说明 |
---|---|---|---|
1, ON, YES, TRUE, Y,或者是非0数字 | 0, OFF, NO, FALSE, N, IGNORE, NOTFOUND,空字符串,或者带-NOTFOUND后缀 | 布尔判断值大小写不敏感 | |
<variable</ |