CMake 示例工程代码
https://github.com/LABELNET/cmake-simple
CMake 目录相关变量见
1.变量
-
CMAKE_PROJECT_NAME
工程名称 -
CMAKE_GENERATOR
当前编译器 -
CMAKE_SIZEOF_VOID_P
架构判断 -
CMAKE_VERSION
CMake 版本 -
CMAKE_HOST_WIN32
平台判断,Windows -
CMAKE_HOST_APPLE
平台判断,MacOS -
CMAKE_HOST_UNIX
平台判断,Linux
2.代码
CMakeLists.txt 文件中,打印各个变量
# 工程名称
message(STATUS "1.CMAKE_PROJECT_NAME : ${CMAKE_PROJECT_NAME}")
# 编译器
message(STATUS "2.CMAKE_GENERATOR : ${CMAKE_GENERATOR}")
# 架构判断, x86 or x64
message(STATUS "3.CMAKE_SIZEOF_VOID_P : ${CMAKE_SIZEOF_VOID_P}")
# CMake 版本
message(STATUS "4.CMAKE_VERSION : ${CMAKE_VERSION}")
# 检查是否 WINDOWS 平台
message(STATUS "5.CMAKE_HOST_WIN32 : ${CMAKE_HOST_WIN32}")
# 检查是否是 MacOS 平台
message(STATUS "6.CMAKE_HOST_APPLE : ${CMAKE_HOST_APPLE}")
# 检查是否是 Linux 平台
message(STATUS "7.CMAKE_HOST_UNIX : ${CMAKE_HOST_UNIX}")
输出
[cmake] -- 1.CMAKE_PROJECT_NAME : simple
[cmake] -- 2.CMAKE_GENERATOR : MinGW Makefiles
[cmake] -- 3.CMAKE_SIZEOF_VOID_P : 8
[cmake] -- 4.CMAKE_VERSION : 3.28.0-rc2
[cmake] -- 5.CMAKE_HOST_WIN32 : 1
[cmake] -- 6.CMAKE_HOST_APPLE :
[cmake] -- 7.CMAKE_HOST_UNIX :
关于平台判断,如果是是对应平台系统,则输出1
3.平台判断
if (CMAKE_HOST_WIN32)
MESSAGE (STATUS "Current platform: Windows")
# 配置环境 windows 环境
elseif (CMAKE_HOST_APPLE)
MESSAGE (STATUS "Current platform: Mac OS X")
elseif (CMAKE_HOST_UNIX)
MESSAGE (STATUS "Current Other platform: ${CMAKE_SYSTEM_NAME}")
endif ()