CMAKE_OSX_DEPLOYMENT_TARGETΒΆ
Specify the minimum version of the target platform, e.g., macOS or iOS, on which the target binaries are to be deployed.
For builds targeting macOS (CMAKE_SYSTEM_NAME is Darwin), if
CMAKE_OSX_DEPLOYMENT_TARGET is not explicitly set, a default is set:
If the
MACOSX_DEPLOYMENT_TARGETenvironment variable is non-empty, its value is the default.Otherwise, if using the
Xcodegenerator, and the host's macOS version is older than the macOS SDK (CMAKE_OSX_SYSROOT, if set, or Xcode's default SDK), the host's macOS version is the default.Changed in version 4.0: Previously this was done for all generators, not just Xcode.
Otherwise, the default is empty.
The effects of CMAKE_OSX_DEPLOYMENT_TARGET depend on the generator:
If
CMAKE_OSX_DEPLOYMENT_TARGETis set to a non-empty value, it is added to the generated Xcode project as theMACOSX_DEPLOYMENT_TARGETsetting. Otherwise, no such setting is added, so Xcode's default deployed target is used, typically based on the SDK version.
Other Generators
If
CMAKE_OSX_DEPLOYMENT_TARGETis set to a non-empty value, it is passed to the compiler via the-mmacosx-version-minflag or equivalent. Otherwise, no such flag is added, so the compiler's default deployment target is used.
The value of this variable should be set prior to the first
project() or enable_language() command invocation
because it may influence configuration of the toolchain and flags.
It is intended to be set locally by the user creating a build tree.
This variable should be set as a CACHE entry (or else CMake may
remove it while initializing a cache entry of the same name) unless
policy CMP0126 is set to NEW.
Despite the OSX part in the variable name(s) they apply also to
other SDKs than macOS like iOS, tvOS, visionOS, or watchOS.
This variable is ignored on platforms other than Apple.