CMake 提供了一些预定义的变量来标识操作系统类型,例如WIN32, UNIX, 和 APPLE。 if(WIN32) message(STATUS "Windows") //Windows elseif(UNIX) message(STATUS "Unix") //Linux elseif(APPLE) message(STATUS "macOS") //苹果 endif() 比较 条件判断必
如果所有的if和elseif条件都不满足,则执行else块中的命令。 endif():结束条件判断块。 在CMake中,基本表达式用于if语句中,以决定是否执行特定的代码块。这些表达式可以是常量、变量或字符串,CMake会根据这些表达式的值来判断条件为真(True)或假(False)。 判定表达式 当表达式的值为以下之一时,条件被认为是真(...
CMake 的做法是:首先看 var 是否是一个已经定义的变量,如果是,则需要将他的值替换到 if 中,否则就直把 var 当成一个字符串/值。 来看一个例子: 此处的 var 是一个已经定义好的变量,因此 if 判断转化为 if("NO") ,它会按照 if(<constant>) 最终...
if(USE_LIBRARY) # add_library will create a static library # since BUILD_SHARED_LIBS is OFF add_library(message ${_sources}) add_executable(hello-world hello-world.cpp) target_link_libraries(hello-world message) else() add_executable(hello-world hello-world.cpp ${_sources}) endif() 1. ...
CMake的条件编译基于if elseif endif。3.0版本具体语法如下 if(expression) #thensection. COMMAND1(ARGS ...) COMMAND2(ARGS ...) ... elseif(expression2) # elseif section. COMMAND1(ARGS ...) COMMAND2(ARGS ...) ...else(expression)
1,CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS,用来控制IF ELSE语句的书写方式,在 下一节语法部分会讲到。 2,BUILD_SHARED_LIBS 这个开关用来控制默认的库编译方式,如果不进行设置,使用ADD_LIBRARY并没有指定库 类型的情况下,默认编译生成的库都是静态库。 如果SET(BUILD_SHARED_LIBS ON)后,默认生成的为动态库。
if(CMAKE_SYSTEM_NAME STREQUAL "Linux") message(STATUS "Configuring on/for Linux") elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") message(STATUS "Configuring on/for macOS") elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") message(STATUS "Configuring on/for Windows") ...
(6) if…else[if]…endif 含义:这个不用详细介绍了,用法同编程语言中的控制语句 语法: if/else([<condition>]) 使用样例: if(WIN32) message(STATUS "inWindowsSystem") elseif(UNIX) message(STATUS "in Unix System") endif() (7) include_directories ...
if (MYDEBUG) add_executable(main2 main2.c) else() message(STATUS "Currently is not in debug mode") endif() 注意,这里使用了if-else来根据option来决定是否编译main2.c,其中main1.c和main2.c的内容如下: main1.c // main1.c #include <stdio.h> ...
if(ARCH MATCHES "x86") message("ARCH is x86") else() message("ARCH is arm") endif() 1. 2. 3. 4. 5. 6. (2)while set(a "1") while(${a} LESS "5") message("${a}") math(EXPR a "${a} + 1") endwhile() 1. ...