我需要确定运行 cmake 文件的 MacOS 版本。
if(BIGSUR)
# do something
else()
# do something else
endif()
我需要确定运行 cmake 文件的 MacOS 版本。
if(BIGSUR)
# do something
else()
# do something else
endif()
取决于你在做什么,CMAKE_HOST_SYSTEM_VERSION
可能不正确。相反,您可能想要CMAKE_SYSTEM_VERSION
which 给出您正在编译的目标系统的版本。您问题中的措辞(“cmake 文件正在运行”)表明您确实需要该HOST
版本,但我提到两者都是为了完整性。
现在,您可能想要的是:
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin"
AND CMAKE_HOST_SYSTEM_VERSION VERSION_GREATER_EQUAL 20
AND CMAKE_HOST_SYSTEM_VERSION VERSION_LESS 21)
message(STATUS "Running on Big Sur")
endif ()
请注意,Big Sur 是 macOS 的最新版本,运行 Darwin 内核版本 20.x。自 2002 年 Jaguar(Puma 从 v1.4.1 跃升到 5.1)以来,macOS 的每个版本都将 Darwin 主要版本增加了 1,因此可以安全地假设 Big Sur 的任何版本都不会具有大于 20 的 Darwin 版本。