if("Hello"STREQUAL"Hello")message("Strings are equal.")else()message("Strings are not equal.")endif() 这段代码会输出Strings are equal.,因为两个字符串是完全相同的。 2.1.2 大小比较(Size Comparison) 在CMake中,我们可以使用STRLESS和STRGREATER来进行字符串的大小比较。这两个命令会根据字符串的长度...
LESS <:检查左侧是否小于右侧。 GREATER >:检查左侧是否大于右侧。 EQUAL ==:检查两侧是否数值相等。 NOTEQUAL !=:检查两侧是否数值不相等。 字符串比较: STRLESS:字符串是否字典序较小。 STRGREATER:字符串是否字典序较大。 STREQUAL:字符串是否相等。 NOT STREQUAL:字符串是否不相等。 # 定义变量 set(a 10) ...
1、EQUAL, LESS, LESS_EQUAL, GREATER, GREATER_EQUAL 2、STREQUAL, STRLESS, STRLESS_EQUAL, STRGREATER, STRGREATER_EQUAL 3、VERSION_EQUAL, VERSION_LESS, VERSION_LESS_EQUAL, VERSION_GREATER, VERSION_GREATER_EQUAL 4、AND 5、OR 函数表达式 MATCHES 多组合表达式 用括号括起来 (expr1) AND (expr2 OR...
GREATER : 数字比较,大于 - EQUAL : 数字比较,相等 这些变量和语法说明将帮助您更好地编写CMakeLists.txt文件,实现项目的构建和管理。通过学习和掌握CMake,您将能够更轻松地进行跨平台开发和项目维护。
VERSION_GREATER_EQUAL:左边版本号大于等于右边版本号时为真。左右两边的版本号格式为major[.minor[.patch[.tweak]]],每个部分都要求是整数(省略的部分当做0),如果是非整数,从非整数的地方往后会被截断。格式为:if(<variable|string> VERSION_GREATER_EQUAL <variable|string>)。
这里的expression是判断条件,和C/C++类似,CMake的条件也存在“与/或/非”以及“等于/大于/小于”等几种操作符,分别用AND/OR/NOT以及EQUAL/LESS/GREATER来表示。当判断条件为真,执行IF后的命令段,否则继续判断并执行相应条件对应的命令段,或者不执行任何操作。例如: ...
(variable|string GREATER variable|string) if(variable|string EQUAL variable|string) //为真的前提是变量值或者字符串为有效的数字且满足小于(大于、等于)的条件 if(variable|string STRLESS variable|string) if(variable|string STRGREATER variable|string) if(variable|string STREQUAL variable|string) //为真...
二元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 条件命令 代码语言:javascript 复制 if(表达式) # 要执行的命令块 COMMAND1(ARGS ...)...
(2)二元操作符,例如:EQUAL、LESS、GREATER、STRLESS、STRGREATER等 (3)NOT(非操作符)、AND(与操作符)、OR(或操作符) 操作符优先级:一元操作符 >二元操作符 > NOT > AND、OR 常用操作符介绍: if(NOT expression) 为真的前提是 expression为假
>>数字比较LESS、GREATER、EQUAL,字串比STRLESS、STRGREATER、STREQUAL, >> Eg: set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) set(AAA abc) IF(AAA STREQUAL abc) message(STATUS "true") #应该打印true ENDIF() 16) 更改h文件时是否只编译必须的cpp文件 ...