目录
1、使用内置变量判断
2、使用变量 CMAKE_SYSTEM_NAME 判断
1、使用内置变量判断
cmake 内置了许多用于表示系统的变量,如 UNIX、WIN32、LINUX、IOS等。假设当前系统为Linux系统,那么 LINUX 变量的值为 1。
更多变量可以参考:cmake-variables(7) — CMake 3.26.4 Documentation
if (WIN32)
message(STATUS "current system is windows32")
elseif(IOS)
message(STATUS "current system is ios")
elseif(UNIX)
message(STATUS "current system is unix")
endif()
2、使用变量 CMAKE_SYSTEM_NAME 判断
该变量更多还是用于交叉编译的时候,但是我们多少也需要了解该变量有哪些可选值。下面列举出一些比较常见的可选值
可选值 | 解析 |
Linux | - |
Windows | - |
Darwin | 对应Mac系统 |
Android | - |
FreeBSD | - |
Generic | 一般用于裸机开发 (没有操作系统的环境) |
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
message(STATUS "current system: Linux")
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
message(STATUS "current system: Mac")
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
message(STATUS "current system: Windows")
else()
message(STATUS "current system: ${CMAKE_SYSTEM_NAME}")
endif()