if (string EQUAL number) 字母表顺序比较: if (variable STRLESS string) if (string STRLESS string) if (variable STRGREATER string) if (string STRGREATER string) if (variable STREQUAL string) if (string STREQUAL string)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") elseif(COMPILER_SUPPORTS_CXX0X) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") else() message(WARNING "The compiler ${CMAKE_CXX...
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") # Clang if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10") message(WARNING "The version of clang (${CMAKE_CXX_COMPILER_VERSION} < 10) is too low") endif() elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") # GCC if(CMAKE_CX...
9. 条件控制 if...else...elseif...endif if(MSVC)set(LINK_LIBS common)else()set(boost_thread boost_log.a boost_system.a)endif()target_link_libraries(demo ${LINK_LIBS})if(${CMAKE_BUILD_TYPE} MATCHES "debug") ...else() ...endif() while break continue foreach endwhile endforeach ...
10.1 if…elseif…else…endif 逻辑判断和比较: if (expression):expression 不为空(0,N,NO,OFF,FALSE,NOTFOUND)时为真 if (not exp):与上面相反 if (var1 AND var2) if (var1 OR var2) if (COMMAND cmd):如果 cmd 确实是命令并可调用为真 ...
在CMake脚本中,可以对宏和函数、if-else语句、块、注释以及任意代码选择进行折叠/展开,如果要使其生效,请确保在设置 | 编辑器 | 常规 | 代码折叠中启用了自定义折叠区域。 按NumPad -/NumPad +来折叠或展开代码片段 结构视图 CMake的结构视图显示了脚本中使用的...
10.1 if…elseif…else…endif 逻辑判断和比较: if (expression):expression 不为空(0,N,NO,OFF,FALSE,NOTFOUND)时为真 if (not exp):与上面相反 if (var1 AND var2) if (var1 OR var2) if (COMMAND cmd):如果 cmd 确实是命令并可调用为真 ...
if(CMAKE_BUILD_TYPE MATCHES Release) set(EXE_POSTFIX) elseif(CMAKE_BUILD_TYPE MATCHES Debug) set(EXE_POSTFIX ${CMAKE_DEBUG_POSTFIX}) elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo) set(EXE_POSTFIX ${CMAKE_RELWITHDEBINFO_POSTFIX}) elseif(CMAKE_BUILD_TYPE MATCHES MinSizeRel) ...
ELSEIF(NOTHAVE_CMAKE_BUILD_TYPEOROLD_WITH_DEBUG) IF(CUSTOM_C_FLAGS) SET(CMAKE_BUILD_TYPE""CACHESTRING${BUILDTYPE_DOCSTRING}FORCE) ELSE(CMAKE_BUILD_TYPEMATCHES"Debug"ORNOTHAVE_CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE"RelWithDebInfo"CACHESTRING ...
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64.*|AARCH64.*") set(HAVE_AVX FALSE) set(HAVE_AVX2 FALSE) set(HAVE_AVX512F FALSE) set(HAVE_FMA FALSE) set(HAVE_SSE4_1 FALSE) set(HAVE_NEON TRUE) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm.*") set(HAVE_AVX FALSE) ...