一个小例子,用来判断平台差异: IF(WIN32) MESSAGE(STATUS “This is windows.”) #作一些 Windows 相关的操作 ELSE(WIN32) MESSAGE(STATUS “This is not windows”) #作一些非 Windows 相关的操作 ENDIF(WIN32) 上述代码用来控制在不同的平台进行不同的控制,但是,阅读起来却并不是那么舒服,ELSE(WIN32)之类...
if(NOT DEFINED CMAKE_PREFIX_PATH) if(NOT "$ENV{CMAKE_PREFIX_PATH}" STREQUAL "") if(NOT WIN32) string(REPLACE ":" ";" CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH}) message("{CMAKE_PREFIX_PATH}="${CMAKE_PREFIX_PATH} ) message("{CMAKE_PREFIX_PATH}="${CMAKE_PREFIX_PATH} ) els...
set(INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Installation directory for header files") if(WIN32 AND NOT CYGWIN) set(DEF_INSTALL_CMAKEDIR CMake) else() set(DEF_INSTALL_CMAKEDIR share/cmake/${PROJECT_NAME}) endif() set(INSTALL_CMAKEDIR ${DEF_INSTALL_CMAKEDIR} CACHE PA...
UNIX 如果为真,表示为 UNIX-like的系统,包括 Apple OS X和 CygWinWIN32 如果为真,表示为 Windows系统,包括 CygWinAPPLE 如果为真,表示为 Apple系统CMAKE_SIZEOF_VOID_P 表示 void* 的大小(例如为 4 或者 8),可以使用其来判断当前构建为 32位还是 64位CMAKE_CURRENT_LIST_DIR表示正在处理的 CMakeLists.txt...
if (CLR_CMAKE_PLATFORM_ARCH_ARM AND WIN32) list(APPEND INC_DIRECTORIES /I${dir}) else() list(APPEND INC_DIRECTORIES -I${dir}) endif(CLR_CMAKE_PLATFORM_ARCH_ARM AND WIN32) endforeach() set(${IncludeDirectories} ${INC_DIRECTORIES} PARENT_SCOPE) ...
if(WIN32) endif() LINUX平台判断: if(UNIX AND NOT APPLE AND NOT ANDROID) endif() MAC平台判断: if(APPLE) endif() 1. 2. 3. 4. 5. 6. 7. 8. 9. 26、cmake设置编译为release # SET(CMAKE_BUILD_TYPE Release) # 这条命令在Windows下面设置不生效 ...
IF (WIN32) MESSAGE(STATUS "Now is windows " ) ELSEIF (APPLE) MESSAGE(STATUS "Now is Apple systens. " ) ELSEIF (UNIX) MESSAGE(STATUS "Now is UNIX-like os 's. " ) ENDIF () 1. 2. 3. 4. 5. 6. 7. 安装:CMAKE_INSTALL_PREFIX ...
if( NOT WIN32 ) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) message(FATAL_ERROR "GCC version must be at least 8.0 !") endif() elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0) mes...
42、T_PATH_MODE_LIBRARY ONLY)SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)CMAKE_FORCE_XXX_COMPILER()宏声明force cmake 识别出complier,第二个参数是complier ID.A toolchain for crosscompiling for Win32 using mingw32 might look like this:# the name of the target operating systemSET(CMAKE_SYSTEM...
if(WIN32) set(EFGE_STATIC_STD_LIBS FALSE CACHE BOOL "Statically linked runtime/standard libraries? Must match with SFML-Option.") if(EFGE_STATIC_STD_LIBS) if(EFGE_SHARED_LIBS) message("\nEFGE_STATIC_STD_LIBS and EFGE_SHARED_LIBS aren\'t compatible!") ...