识别操作系统平台
以下代码可以识别 Windows、Linux、Macos三种类型的操作系统平台:
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 "Darwin")
MESSAGE(STATUS "current platform: Mac OS X")
ELSE ()
MESSAGE(STATUS "other platform: ${CMAKE_SYSTEM_NAME}")
ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux")
在2.6版本以上的cmake上就可以使用以上内置变量,非常方便。
识别Linux发行版本
这就需要更详细的系统信息了,类似的,可以识别Windows系统的具体版本。
如果cmake版本在3.22以上,可以直接使用cmake_host_system_information变量,原型如下:
cmake_host_system_information(RESULT <variable> QUERY <key> ...)
使用它查询系统信息,可以在key处指定多个待查询的指标,查询结果会存储在variable的list中。
经常使用key如下:
- NUMBER_OF_LOGICAL_CORES:逻辑核数量

本文详细介绍了如何使用CMake识别操作系统平台,包括Windows、Linux和MacOS,并展示了如何在Cmake 3.22及以上版本中获取Linux发行版的具体信息,如版本号和发行商。通过cmake_host_system_information变量,可以轻松获取核心系统配置和Linux发行版特征。
1791

被折叠的 条评论
为什么被折叠?



