在CMake中,我们可以使用string(COMPARE <EQUAL|NOTEQUAL|LESS|GREATER> <string1> <string2> <output variable>)函数来比较两个字符串。这在处理版本号或者其他需要比较的场景中非常有用。 例如,我们可以通过比较两个版本号字符串,来判断一个软件是否需要更新。 4.2.3 字符串查找(Find
在CMake中,我们可以使用string(COMPARE <EQUAL|NOTEQUAL|LESS|GREATER> <string1> <string2> )函数来比较两个字符串。这在处理版本号或者其他需要比较的场景中非常有用。 例如,我们可以通过比较两个版本号字符串,来判断一个软件是否需要更新。 4.2.3 字符串查找(Find) 在CMake中,我们可以使用string(FIND <strin...
value:为变量赋予的值。 CACHE_TYPE(可选):指定缓存变量的类型,如 FILEPATH、PATH、STRING、BOOL 等。 CACHE_VARIABLE(可选):如果指定,变量将被存储在 CMake 缓存中,而不是只限于当前的 CMakeLists.txt 文件。 后两项我们暂时不做讨论。现在我们可以将要使用的源文件名存储在变量里 #定义一个变量SOURCE_FILE...
相反,CMake使用STRING命令来进行字符串比较。如果你想在CMakeLists.txt文件中比较两个字符串是否相等,可以使用以下的方式: #定义两个字符串 set"Hello" set"World" #使用IF语句进行字符串比较 if"${string1}"STREQUAL"${string2}" message"The strings are equal." else message"The strings are not equal."...
CMakeCache.txt:CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG CMakeFiles/main.dir/flags.make:CXX_FLAGS = -O3 -Wall CMakeFiles/main.dir/link.txt:/usr/bin/c++ -O3 -Wall CMakeFiles/main.dir/main.cpp.o -o main -rdynamic CMakeLists.txt:SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS}...
if(variable|string MATCHES regex) 为真的前提是变量值或者字符串匹配 regex正则表达式 if(variable|stringLESS variable|string) if(variable|string GREATER variable|string) if(variable|string EQUAL variable|string) 为真的前提是变量值或者字符串为有效的数字且满足小于(大于、等于)的条件 ...
string(COMPARE NOTEQUAL <string1> <string2> ) string(COMPARE LESS <string1> <string2> ) string(COMPARE GREATER <string1> <string2> ) string(ASCII <number> [<number> ...] ) string(CONFIGURE <string1> [@ONLY] [ESCAPE_QUOTES]) string(TOUPPER...
variable:变量、string:字符串 STRLESS:如果左侧字符串小于右侧,返回True STRGREATER:如果左侧字符串大于右侧,返回True STREQUAL:如果左侧字符串等于右侧,返回True STRLESS_EQUAL:如果左侧字符串小于等于右侧,返回True STRGREATER_EQUAL:如果左侧字符串大于等于右侧,返回True ...
CMake中所有的变量都是string类型。可以使用set()和unset()命令来声明或移除一个变量 # 声明变量:set(变量名 变量值)set(var 123) 变量的引用:${变量名} # 引用变量 message命令用来打印# 如果想直接看到打印信息,使用 WARNING 以上的级别进行打印。message(WARNING"var =${var}") ...
数字比较:if (variable LESS number):LESS 小于if (string LESS number)if (variable GREATER number):GREATER 大于if (string GREATER number)if (variable EQUAL number):EQUAL 等于if (string EQUAL number)字母表顺序比较:if (variable STRLESS string)if (string STRLESS string)if (variable STRGREATER ...