在CMake中,if
、else
和endif
是用于条件判断的命令,允许你根据条件执行不同的指令块。以下是这些命令的用法以及一些示例说明:
if(condition)
# 条件为真时执行的指令块
else()
# 条件为假时执行的指令块
endif()
condition
: 要判断的条件。set(option_enabled TRUE)
if(option_enabled)
message(STATUS "Option is enabled.")
else()
message(STATUS "Option is disabled.")
endif()
set(var_value 10)
if(${var_value} LESS 5)
message(STATUS "Value is less than 5.")
else()
message(STATUS "Value is greater than or equal to 5.")
endif()
set(flag1 TRUE)
set(flag2 FALSE)
if(flag1 AND flag2)
message(STATUS "Both flags are true.")
elseif(flag1 OR flag2)
message(STATUS "At least one flag is true.")
else()
message(STATUS "Both flags are false.")
endif()
set(string1 "Hello")
set(string2 "World")
if(string1 STREQUAL string2)
message(STATUS "Strings are equal.")
else()
message(STATUS "Strings are not equal.")
endif()
set(condition FALSE)
if(NOT condition)
message(STATUS "Condition is not true.")
else()
message(STATUS "Condition is true.")
endif()
set(var1 TRUE)
set(var2 TRUE)
if(var1)
if(var2)
message(STATUS "Both var1 and var2 are true.")
else()
message(STATUS "Var1 is true, but var2 is false.")
endif()
else()
message(STATUS "Var1 is false.")
endif()
这些示例覆盖了一些基本的条件判断场景,包括使用变量、逻辑操作符、字符串比较、NOT操作符等。在实际项目中,条件判断常用于根据不同的情况执行不同的构建步骤或设置不同的变量。