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() 命令之前设置,因为它可能会影响工具链和标志的配置。它 intended to be set locally by the user creating a build tree. 此变量应设置为 CACHE 条目(否则 CMake 可能会在初始化同名缓存条目时将其删除),除非策略 CMP0126 被设置为 NEW。
尽管变量名中包含 OSX,但它们也适用于 macOS 以外的其他 SDK,例如 iOS、tvOS、visionOS 或 watchOS。
此变量在非 Apple 平台上被忽略。