如何解决如何检测我的 Cmake 代码在哪个版本的 macOS 上运行?
我需要确定运行 cmake 文件的 MacOS 版本。
if(BIGSUR)
# do something
else()
# do something else
endif()
解决方法
根据您在做什么,CMAKE_HOST_SYSTEM_VERSION
可能不正确。您可能需要 CMAKE_SYSTEM_VERSION
来提供您正在编译的目标系统的版本。您的问题中的措辞(“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 以来,macOS 的每个版本都将 Darwin 主要版本增加了 1(Puma 从 v1.4.1 跃升至 5.1),因此可以安全地假设 Big Sur 的任何版本都不会具有大于 20 的 Darwin 版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。