diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh index 6f3d33bcaa7cb..87bbefa6bbfae 100755 --- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh @@ -50,13 +50,12 @@ cmakeConfigurePhase() { # because we usually do not package the framework cmakeFlags="-DCMAKE_FIND_FRAMEWORK=last $cmakeFlags" + # on macOS i686 was only relevant for 10.5 or earlier. + cmakeFlags="-DCMAKE_OSX_ARCHITECTURES=x86_64 $cmakeFlags" + # we never want to use the global macOS SDK cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags" - # disable OSX deployment target - # we don't want our binaries to have a "minimum" OSX version - cmakeFlags="-DCMAKE_OSX_DEPLOYMENT_TARGET= $cmakeFlags" - # correctly detect our clang compiler cmakeFlags="-DCMAKE_POLICY_DEFAULT_CMP0025=NEW $cmakeFlags" diff --git a/pkgs/development/tools/misc/ccls/default.nix b/pkgs/development/tools/misc/ccls/default.nix index 8748cdf52b4f7..f442c16e35161 100644 --- a/pkgs/development/tools/misc/ccls/default.nix +++ b/pkgs/development/tools/misc/ccls/default.nix @@ -15,10 +15,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = with llvmPackages; [ clang-unwrapped llvm rapidjson ]; - cmakeFlags = [ - "-DCCLS_VERSION=${version}" - "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12" - ]; + cmakeFlags = [ "-DCCLS_VERSION=${version}" ]; preConfigure = '' cmakeFlagsArray+=(-DCMAKE_CXX_FLAGS="-fvisibility=hidden -fno-rtti") diff --git a/pkgs/development/tools/misc/cquery/default.nix b/pkgs/development/tools/misc/cquery/default.nix index c43509a4f43bc..87b3cbb7121e2 100644 --- a/pkgs/development/tools/misc/cquery/default.nix +++ b/pkgs/development/tools/misc/cquery/default.nix @@ -26,7 +26,6 @@ stdenv.mkDerivation { cmakeFlags = [ "-DSYSTEM_CLANG=ON" "-DCLANG_CXX=ON" - "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12" ]; shell = runtimeShell; diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix index 9890d385259ce..89c13d0b92d7f 100644 --- a/pkgs/os-specific/darwin/apple-sdk/default.nix +++ b/pkgs/os-specific/darwin/apple-sdk/default.nix @@ -1,10 +1,15 @@ { stdenv, fetchurl, xar, cpio, pkgs, python3, pbzx, lib }: +let version = "10.12"; in + +# Ensure appleSdkVersion is up to date. +assert stdenv.isDarwin -> stdenv.appleSdkVersion == version; + let # sadly needs to be exported because security_tool needs it sdk = stdenv.mkDerivation rec { - version = "10.12"; pname = "MacOS_SDK"; + inherit version; # This URL comes from https://swscan.apple.com/content/catalogs/others/index-10.12.merged-1.sucatalog, which we found by: # 1. Google: site:swscan.apple.com and look for a name that seems appropriate for your version diff --git a/pkgs/servers/sql/mysql/8.0.x.nix b/pkgs/servers/sql/mysql/8.0.x.nix index fcb64550d6fe5..3c1d1f6645c6c 100644 --- a/pkgs/servers/sql/mysql/8.0.x.nix +++ b/pkgs/servers/sql/mysql/8.0.x.nix @@ -31,7 +31,6 @@ self = stdenv.mkDerivation rec { outputs = [ "out" "static" ]; cmakeFlags = [ - "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12" # For std::shared_timed_mutex. "-DCMAKE_SKIP_BUILD_RPATH=OFF" # To run libmysql/libmysql_api_test during build. "-DFORCE_UNSUPPORTED_COMPILER=1" # To configure on Darwin. "-DWITH_ROUTER=OFF" # It may be packaged separately. diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index f73fca48b7a7c..4f91d18a3764f 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -1,6 +1,9 @@ { lib , localSystem, crossSystem, config, overlays, crossOverlays ? [] - +# The version of darwin.apple_sdk used for sources provided by apple. +, appleSdkVersion ? "10.12" +# Minimum required macOS version, used both for compatibility as well as reproducability. +, macosVersionMin ? "10.12" # Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools , bootstrapFiles ? let fetch = { file, sha256, executable ? true }: import { @@ -28,15 +31,19 @@ let ]; in rec { commonPreHook = '' - export NIX_ENFORCE_PURITY="''${NIX_ENFORCE_PURITY-1}" - export NIX_ENFORCE_NO_NATIVE="''${NIX_ENFORCE_NO_NATIVE-1}" + export NIX_ENFORCE_NO_NATIVE=''${NIX_ENFORCE_NO_NATIVE-1} + export NIX_ENFORCE_PURITY=''${NIX_ENFORCE_PURITY-1} export NIX_IGNORE_LD_THROUGH_GCC=1 - stripAllFlags=" " # the Darwin "strip" command doesn't know "-s" - export MACOSX_DEPLOYMENT_TARGET=10.12 export SDKROOT= - export CMAKE_OSX_ARCHITECTURES=x86_64 + + # Ensure consistent LC_VERSION_MIN_MACOSX and remove LC_UUID. + export MACOSX_DEPLOYMENT_TARGET=${macosVersionMin} + export NIX_LDFLAGS+=" -macosx_version_min ${macosVersionMin} -sdk_version ${appleSdkVersion} -no_uuid" + # Workaround for https://openradar.appspot.com/22671534 on 10.11. export gl_cv_func_getcwd_abort_bug=no + + stripAllFlags=" " # the Darwin "strip" command doesn't know "-s" ''; bootstrapTools = derivation { @@ -130,8 +137,7 @@ in rec { __extraImpureHostDeps = commonImpureHostDeps; extraAttrs = { - inherit platform; - parent = last; + inherit macosVersionMin appleSdkVersion platform; }; overrides = self: super: (overrides self super) // { fetchurl = thisStdenv.fetchurlBoot; }; }; @@ -400,9 +406,9 @@ in rec { extraBuildInputs = [ pkgs.darwin.CF ]; extraAttrs = { - inherit platform bootstrapTools; - libc = pkgs.darwin.Libsystem; + libc = pkgs.darwin.Libsystem; shellPackage = pkgs.bash; + inherit macosVersionMin appleSdkVersion platform bootstrapTools; }; allowedRequisites = (with pkgs; [