CMAKE获取编译操作系统、编译位数、编译方式

获取正在编译的操作系统

​
IF (CMAKE_SYSTEM_NAME MATCHES "Linux")MESSAGE(STATUS "current platform: Linux ")
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")MESSAGE(STATUS "current platform: Windows")
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")MESSAGE(STATUS "current platform: FreeBSD")
ELSE ()MESSAGE(STATUS "other platform: ${CMAKE_SYSTEM_NAME}")
ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux")​

获取编译位数

​
if(CMAKE_CL_64)    #CMAKE的内建变量,如果是true,就说明编译器的64位的,自然可以编译64bit的程序MESSAGE(STATUS "current build compiler: x64")
else()MESSAGE(STATUS "current build compiler: x86")
endif()​

Windows Visual Studio 2019 默认为64位。

获取编译方式

if(CMAKE_BUILD_TYPE AND (CMAKE_BUILD_TYPE STREQUAL "Debug"))MESSAGE("Debug mode:${CMAKE_C_FLAGS_DEBUG}")
elseif(CMAKE_BUILD_TYPE AND (CMAKE_BUILD_TYPE STREQUAL "Release"))MESSAGE(STATUS "Release mode:${CMAKE_C_FLAGS_RELEASE}")else()MESSAGE(STATUS "else:${CMAKE_BUILD_TYPE}")MESSAGE(STATUS "else:${CMAKE_C_FLAGS_RELEASE}")endif()

案例:Windows  ---visual studio 2019---x64----Release

CmakeList.txt在..目录中

 cmake .. -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部