Back to Cmake

CMAKE_OSX_SYSROOT

Help/variable/CMAKE_OSX_SYSROOT.rst

4.3.21.3 KB
Original Source

CMAKE_OSX_SYSROOT

Specify the location or name of the macOS platform SDK to be used.

If not set explicitly, the value is initialized by the SDKROOT environment variable, if set. Otherwise, the value defaults to empty, and the compiler is expected to choose a default macOS SDK on its own.

.. versionchanged:: 4.0 The default is now empty. Previously a default was computed based on the :variable:CMAKE_OSX_DEPLOYMENT_TARGET or the host platform.

In order to pass an explicit macOS SDK via the compiler's -isysroot flag, users may configure their build tree with -DCMAKE_OSX_SYSROOT=macosx, or export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)" in their environment.

Notes:

  • macOS compilers in /usr/bin, when not invoked with -isysroot, search for headers in /usr/local/include before system SDK paths, matching the convention on many platforms. Users on macOS-x86_64 hosts with Homebrew installed in /usr/local should pass an explicit SDK, as described above, when not building with Homebrew tools.

  • Some Clang compilers have no default macOS SDK selection. For these, if :variable:CMAKE_OSX_SYSROOT is empty, CMake will automatically pass -isysroot with the macOS SDK printed by xcrun --show-sdk-path.

.. include:: include/CMAKE_OSX_VARIABLE.rst