#if not defined(BUG_HERE) #define BUG_HERE “bug” #endif #if !defined(COMPARE1) #define COMPARE1 “Compare1” #endif #ifndef COMPARE2 #define COMPARE2 “Compare2” #endif int main(int argc, const char** argv) { printf(COMPARE1); printf(COMPARE2); printf(BUG_HERE...
IF(DEFINED variable)#如果变量被定义,为真。一个小例子,用来判断平台差异: IF(WIN32) MESSAGE(STATUS “This is windows.”) #作一些 Windows 相关的操作 ELSE(WIN32) MESSAGE(STATUS “This is not windows”) #作一些非 Windows 相关的操作 ENDIF(WIN32) 上述代码用来控制在不同的平台进行不同的控制,但是...
IF(DEFINED variable)#如果变量被定义,为真。一个小例子,用来判断平台差异: IF(WIN32) MESSAGE(STATUS “This is windows.”) #作一些 Windows 相关的操作 ELSE(WIN32) MESSAGE(STATUS “This is not windows”) #作一些非 Windows 相关的操作 ENDIF(WIN32) 上述代码用来控制在不同的平台进行不同的控制,但...
# CMakeLists.txtif(YES)message("YES")endif()if(NOTFOUND)else()message("Not found")endif() # 命令行中执行cmake.后的输出 YES Not found if(<variable>) 如果给定的变量有定义,且值不是0,OFF,NO,FALSE,N,IGNORE,NOTFOUND,空字符串,以NOTFOUND为后缀时为真; 其他情况该判断为假; 注意:宏参数和...
变量的值可以是任何字符串,包括空字符串。如果一个变量的值是空字符串,那么这个变量就被认为是未定义的。可以使用IF命令来检查一个变量是否被定义: if(DEFINEDMY_VARIABLE)message("MY_VARIABLE is defined.")else()message("MY_VARIABLE is not defined.")endif() ...
if(defined MACRO_NAME) message(STATUS "MACRO_NAME is defined.") else() message(STATUS "MACRO_NAME is not defined.") endif() 在上述代码中,MACRO_NAME应替换为你想要检查的宏名称。如果该宏被定义,那么将会打印出"MACRO_NAME is defined.",否则打印出"MACRO_NAME is not defined."。 你还可以在CM...
if(DEFINEDENV{CMAKE_PATH}) message("CMAKE_PATH_1: $ENV{CMAKE_PATH}") else() message("NOT DEFINED CMAKE_PATH VARIABLES") endif() # 定义测试函数,在函数中新定义环境变量 function(test_env_variable) # 访问环境变量CMAKE_PATH message("CMAKE_PATH_2: $ENV{CMAKE_PATH}") ...
(1)一元操作符,例如:EXISTS、COMMAND、DEFINED等 (2)二元操作符,例如:EQUAL、LESS、GREATER、STRLESS、STRGREATER等 (3)NOT(非操作符)、AND(与操作符)、OR(或操作符) 操作符优先级:一元操作符 >二元操作符 > NOT > AND、OR 常用操作符介绍: if(NOT expression) 为真的前提是 expression为假 ...
if 语句块中可以包含的关键字有: 一元:NOT、TARGET、EXISTS(file)、DEFINED 等 二元:STREQUAL、AND、OR、MATCHES(regular expression)、VERSION_LESS、VERSION_LESS_EQUAL 等 括号:() 3.8 生成表达式 $<KEYWORD> :计算 KEYWORD 的值 $<KEYWORD:value> :根据 KEYWORD 的值来控制整个表达式的值,KEYWORD = 1 时表...
IF (not LS_RVALUE) MESSAGE(STATUS"ls result:"${LS_OUTPUT}) # 缩进仅为美观,语法无要求 ENDIF(not LS_RVALUE) INCLUDE INCLUDE(file [OPTIONAL]) 用来载入CMakeLists.txt文件 INCLUDE(module [OPTIONAL])用来载入预定义的cmake模块 OPTIONAL参数的左右是文件不存在也不会产生错误 ...