at 18.03-beta 78 lines 1.8 kB view raw
1{ stdenv, callPackage, makeWrapper, writeText, CoreServices, ImageIO, CoreGraphics 2, cctools, bootstrap_cmds, binutils}: 3 4let 5 6 toolchainName = "com.apple.dt.toolchain.XcodeDefault"; 7 platformName = "com.apple.platform.macosx"; 8 sdkName = "macosx10.10"; 9 10 xcbuild = callPackage ./default.nix { 11 inherit CoreServices ImageIO CoreGraphics; 12 }; 13 14 toolchain = callPackage ./toolchain.nix { 15 inherit cctools bootstrap_cmds toolchainName xcbuild binutils stdenv; 16 }; 17 18 sdk = callPackage ./sdk.nix { 19 inherit toolchainName sdkName xcbuild; 20 }; 21 22 platform = callPackage ./platform.nix { 23 inherit sdk platformName xcbuild; 24 }; 25 26 xcconfig = writeText "nix.xcconfig" '' 27 SDKROOT=${sdkName} 28 ''; 29 30in 31 32stdenv.mkDerivation { 33 name = "xcbuild-wrapper-${xcbuild.version}"; 34 35 buildInputs = [ xcbuild makeWrapper ]; 36 37 setupHook = ./setup-hook.sh; 38 39 phases = [ "installPhase" "fixupPhase" ]; 40 41 installPhase = '' 42 mkdir -p $out/bin 43 cd $out/bin/ 44 45 for file in ${xcbuild}/bin/*; do 46 ln -s $file 47 done 48 49 mkdir -p $out/Library/Xcode/ 50 ln -s ${xcbuild}/Library/Xcode/Specifications $out/Library/Xcode/Specifications 51 52 mkdir -p $out/Platforms/ 53 ln -s ${platform} $out/Platforms/nixpkgs.platform 54 55 mkdir -p $out/Toolchains/ 56 ln -s ${toolchain} $out/Toolchains/nixpkgs.xctoolchain 57 58 wrapProgram $out/bin/xcodebuild \ 59 --add-flags "-xcconfig ${xcconfig}" \ 60 --add-flags "DERIVED_DATA_DIR=." \ 61 --set DEVELOPER_DIR "$out" \ 62 --set SDKROOT ${sdkName} 63 wrapProgram $out/bin/xcrun \ 64 --set DEVELOPER_DIR "$out" \ 65 --set SDKROOT ${sdkName} 66 wrapProgram $out/bin/xcode-select \ 67 --set DEVELOPER_DIR "$out" \ 68 --set SDKROOT ${sdkName} 69 ''; 70 71 inherit (xcbuild) meta; 72 73 passthru = { 74 raw = xcbuild; 75 }; 76 77 preferLocalBuild = true; 78}