CMAKE_OSX_DEPLOYMENT_TARGET¶
指定目标平台(例如 macOS 或 iOS)的最低版本,目标二进制文件将在其上部署。
对于针对 macOS (CMAKE_SYSTEM_NAME 为 Darwin) 构建的项目,如果未显式设置 CMAKE_OSX_DEPLOYMENT_TARGET,则会设置一个默认值。
如果环境变量
MACOSX_DEPLOYMENT_TARGET非空,则其值将作为默认值。否则,如果使用
Xcode生成器,并且主机 macOS 版本早于 macOS SDK(如果设置了CMAKE_OSX_SYSROOT,则使用其值;否则使用 Xcode 的默认 SDK),则主机 macOS 版本将作为默认值。版本 4.0 更改: 之前仅对 Xcode 生成器执行此操作,而并非所有生成器。
否则,默认值为留空。
CMAKE_OSX_DEPLOYMENT_TARGET 的效果取决于生成器
如果将
CMAKE_OSX_DEPLOYMENT_TARGET设置为非空值,则将其添加到生成的 Xcode 项目中,作为MACOSX_DEPLOYMENT_TARGET设置。 否则,将不会添加此类设置,因此 Xcode 将使用默认的部署目标,通常基于 SDK 版本。
其他生成器
如果将
CMAKE_OSX_DEPLOYMENT_TARGET设置为非空值,则它将通过-mmacosx-version-min标志或等效标志传递给编译器。 否则,将不会添加此类标志,因此编译器将使用默认的部署目标。
此变量的值应在第一个 project() 或 enable_language() 命令调用之前设置,因为它可能会影响工具链和标志的配置。 它旨在由创建构建树的用户本地设置。 此变量应设置为 CACHE 条目(否则 CMake 可能会在初始化同名缓存条目时将其删除),除非策略 CMP0126 设置为 NEW。
尽管变量名中包含 OSX,但它们也适用于 macOS 以外的其他 SDK,例如 iOS、tvOS、visionOS 或 watchOS。
此变量在非 Apple 平台上被忽略。