about summary refs log tree commit diff
path: root/pkgs/development/tools/xcbuild
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-07-11 11:45:23 -0400
committerMatthew Bauer <mjbauer95@gmail.com>2018-08-11 22:54:48 -0500
commitb5d529d52f956a9830d2aa3b1042071216c30d86 (patch)
tree93bb8ba45379c24663f9d136f5a64e8e8aa9617f /pkgs/development/tools/xcbuild
parent0edb441a0ee44bea1bf448653d2b11679fdcd287 (diff)
downloadnixlib-b5d529d52f956a9830d2aa3b1042071216c30d86.tar
nixlib-b5d529d52f956a9830d2aa3b1042071216c30d86.tar.gz
nixlib-b5d529d52f956a9830d2aa3b1042071216c30d86.tar.bz2
nixlib-b5d529d52f956a9830d2aa3b1042071216c30d86.tar.lz
nixlib-b5d529d52f956a9830d2aa3b1042071216c30d86.tar.xz
nixlib-b5d529d52f956a9830d2aa3b1042071216c30d86.tar.zst
nixlib-b5d529d52f956a9830d2aa3b1042071216c30d86.zip
xcbuild: cleanup
Diffstat (limited to 'pkgs/development/tools/xcbuild')
-rw-r--r--pkgs/development/tools/xcbuild/platforms.nix3
-rw-r--r--pkgs/development/tools/xcbuild/sdks.nix9
-rw-r--r--pkgs/development/tools/xcbuild/toolchains.nix56
-rw-r--r--pkgs/development/tools/xcbuild/wrapper.nix22
4 files changed, 48 insertions, 42 deletions
diff --git a/pkgs/development/tools/xcbuild/platforms.nix b/pkgs/development/tools/xcbuild/platforms.nix
index bc60af9e1a5c..e20dc878b535 100644
--- a/pkgs/development/tools/xcbuild/platforms.nix
+++ b/pkgs/development/tools/xcbuild/platforms.nix
@@ -294,8 +294,7 @@ runCommand "Platforms" {} ''
   install -D ${writeText "PackageTypes.xcspec" (toPlist {} PackageTypes)} $platform/Developer/Library/Xcode/Specifications/PackageTypes.xcspec
   install -D ${writeText "ProductTypes.xcspec" (toPlist {} ProductTypes)} $platform/Developer/Library/Xcode/Specifications/ProductTypes.xcspec
 
-  # per-platform bins go here
-  mkdir -p $platform/usr/bin
+  ln -s $platform $platform/usr
 
   mkdir -p $platform/Developer
   ln -s ${sdks} $platform/Developer/SDKs
diff --git a/pkgs/development/tools/xcbuild/sdks.nix b/pkgs/development/tools/xcbuild/sdks.nix
index b0af26e87c12..74192d9c6744 100644
--- a/pkgs/development/tools/xcbuild/sdks.nix
+++ b/pkgs/development/tools/xcbuild/sdks.nix
@@ -1,4 +1,5 @@
-{ runCommand, lib, toolchainName, sdkName, writeText, version, xcodePlatform }:
+{ stdenv, runCommand, lib, toolchainName, sdkName
+, writeText, version, xcodePlatform, libcxx, symlinkJoin }:
 
 let
   inherit (lib.generators) toPlist;
@@ -18,11 +19,11 @@ let
   };
 in
 
-runCommand "SDKs" {
-  inherit version;
-} ''
+runCommand "SDKs" {} ''
   sdk=$out/${sdkName}.sdk
   install -D ${writeText "SDKSettings.plist" (toPlist {} SDKSettings)} $sdk/SDKSettings.plist
   install -D ${writeText "SystemVersion.plist" (toPlist {} SystemVersion)} $sdk/System/Library/CoreServices/SystemVersion.plist
+  ln -s $sdk $sdk/usr
+
   ln -s $sdk $out/${xcodePlatform}.sdk
 ''
diff --git a/pkgs/development/tools/xcbuild/toolchains.nix b/pkgs/development/tools/xcbuild/toolchains.nix
index 01a8fbdb0b06..59e009a43386 100644
--- a/pkgs/development/tools/xcbuild/toolchains.nix
+++ b/pkgs/development/tools/xcbuild/toolchains.nix
@@ -1,4 +1,4 @@
-{ runCommand, toolchainName, fetchurl, makeWrapper, stdenv
+{ runCommand, toolchainName, fetchurl, stdenv
 , buildPackages, lib, writeText }:
 
 let
@@ -20,52 +20,52 @@ let
   };
 in
 
-runCommand "Toolchains" {
-  nativeBuildInputs = [ makeWrapper ];
-} (''
+runCommand "Toolchains" {} (''
   toolchain=$out/XcodeDefault.xctoolchain
   mkdir -p $toolchain
 
   install -D ${writeText "ToolchainInfo.plist" (toPlist {} ToolchainInfo)} $toolchain/ToolchainInfo.plist
 
-  mkdir -p $toolchain/usr/include
-  mkdir -p $toolchain/usr/lib
-  mkdir -p $toolchain/usr/libexec
-  mkdir -p $toolchain/usr/share
-  mkdir -p $toolchain/usr/bin
+  ln -s $toolchain $toolchain/usr
+
+  mkdir -p $toolchain/include
+  mkdir -p $toolchain/lib
+  mkdir -p $toolchain/libexec
+  mkdir -p $toolchain/share
+  mkdir -p $toolchain/bin
 
   for bin in ${getBin stdenv.cc}/bin/*; do
-    ln -s $bin $toolchain/usr/bin
+    ln -s $bin $toolchain/bin
   done
 
   for bin in ${getBin stdenv.cc.bintools.bintools}/bin/*; do
-    if ! [ -e "$toolchain/usr/bin/$(basename $bin)" ]; then
-      ln -s $bin $toolchain/usr/bin
+    if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then
+      ln -s $bin $toolchain/bin
     fi
   done
 
-  ln -s ${buildPackages.yacc}/bin/yacc $toolchain/usr/bin/yacc
-  ln -s ${buildPackages.yacc}/bin/bison $toolchain/usr/bin/bison
-  ln -s ${buildPackages.flex}/bin/flex $toolchain/usr/bin/flex
-  ln -s ${buildPackages.flex}/bin/flex++ $toolchain/usr/bin/flex++
-  ln -s $toolchain/bin/flex $toolchain/usr/bin/lex
+  ln -s ${buildPackages.yacc}/bin/yacc $toolchain/bin/yacc
+  ln -s ${buildPackages.yacc}/bin/bison $toolchain/bin/bison
+  ln -s ${buildPackages.flex}/bin/flex $toolchain/bin/flex
+  ln -s ${buildPackages.flex}/bin/flex++ $toolchain/bin/flex++
+  ln -s $toolchain/bin/flex $toolchain/bin/lex
 
-  ln -s ${buildPackages.m4}/bin/m4 $toolchain/usr/bin/m4
-  ln -s $toolchain/usr/bin/m4 $toolchain/usr/bin/gm4
+  ln -s ${buildPackages.m4}/bin/m4 $toolchain/bin/m4
+  ln -s $toolchain/bin/m4 $toolchain/bin/gm4
 
-  ln -s ${buildPackages.unifdef}/bin/unifdef $toolchain/usr/bin/unifdef
-  ln -s ${buildPackages.unifdef}/bin/unifdefall $toolchain/usr/bin/unifdefall
+  ln -s ${buildPackages.unifdef}/bin/unifdef $toolchain/bin/unifdef
+  ln -s ${buildPackages.unifdef}/bin/unifdefall $toolchain/bin/unifdefall
 
-  ln -s ${buildPackages.gperf}/bin/gperf $toolchain/usr/bin/gperf
-  ln -s ${buildPackages.indent}/bin/indent $toolchain/usr/bin/indent
-  ln -s ${buildPackages.ctags}/bin/ctags $toolchain/usr/bin/ctags
+  ln -s ${buildPackages.gperf}/bin/gperf $toolchain/bin/gperf
+  ln -s ${buildPackages.indent}/bin/indent $toolchain/bin/indent
+  ln -s ${buildPackages.ctags}/bin/ctags $toolchain/bin/ctags
 '' + optionalString stdenv.isDarwin ''
   for bin in ${getBin buildPackages.darwin.cctools}/bin/*; do
-    if ! [ -e "$toolchain/usr/bin/$(basename $bin)" ]; then
-      ln -s $bin $toolchain/usr/bin
+    if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then
+      ln -s $bin $toolchain/bin
     fi
   done
 
-  ln -s ${buildPackages.darwin.bootstrap_cmds}/bin/mig $toolchain/usr/bin
-  ln -s ${mkdep-darwin-src} $toolchain/usr/bin/mkdep
+  ln -s ${buildPackages.darwin.bootstrap_cmds}/bin/mig $toolchain/bin
+  ln -s ${mkdep-darwin-src} $toolchain/bin/mkdep
 '')
diff --git a/pkgs/development/tools/xcbuild/wrapper.nix b/pkgs/development/tools/xcbuild/wrapper.nix
index 64bf78d0cfbe..d2044ea40ad2 100644
--- a/pkgs/development/tools/xcbuild/wrapper.nix
+++ b/pkgs/development/tools/xcbuild/wrapper.nix
@@ -1,4 +1,5 @@
-{ lib, buildPackages, makeWrapper, writeText, runCommand
+{ stdenv, lib, buildPackages, makeWrapper, writeText, runCommand
+, bash
 , CoreServices, ImageIO, CoreGraphics
 , targetPlatform
 , xcodePlatform ? targetPlatform.xcodePlatform or "MacOSX"
@@ -36,7 +37,7 @@ let
   '';
 
   xcode-select = writeText "xcode-select" ''
-#!/usr/bin/env sh
+#!${bash}/bin/sh
 while [ $# -gt 0 ]; do
    case "$1" in
          -h | --help) ;; # noop
@@ -51,7 +52,7 @@ done
   '';
 
   xcrun = writeText "xcrun" ''
-#!/usr/bin/env sh
+#!${bash}/bin/sh
 while [ $# -gt 0 ]; do
    case "$1" in
          --sdk | -sdk) shift ;;
@@ -86,16 +87,20 @@ runCommand "xcodebuild-${xcbuild.version}" {
   inherit (xcbuild) meta;
 
   # ensure that the toolchain goes in PATH
-  propagatedBuildInputs = [ "${toolchains}/XcodeDefault.xctoolchain/usr" ];
+  propagatedBuildInputs = [ "${toolchains}/XcodeDefault.xctoolchain" ];
 
-  passthru = { inherit xcbuild; };
+  passthru = {
+    inherit xcbuild;
+    toolchain = "${toolchains}/XcodeDefault.xctoolchain";
+    sdk = "${sdks}/${sdkName}";
+    platform = "${platforms}/${xcodePlatform}.platform";
+  };
 
   preferLocalBuild = true;
 } ''
   mkdir -p $out/bin
 
-  mkdir -p $out/usr
-  ln -s $out/bin $out/usr/bin
+  ln -s $out $out/usr
 
   mkdir -p $out/Library/Xcode
   ln -s ${xcbuild}/Library/Xcode/Specifications $out/Library/Xcode/Specifications
@@ -108,7 +113,8 @@ runCommand "xcodebuild-${xcbuild.version}" {
     --add-flags "DERIVED_DATA_DIR=." \
     --set DEVELOPER_DIR "$out" \
     --set SDKROOT ${sdkName} \
-    --run '[ "$1" = "-version" ] && (echo Xcode ${xcodeVer}; echo Build version ${sdkBuildVersion}) && exit 0'
+    --run '[ "$1" = "-version" ] && (echo Xcode ${xcodeVer}; echo Build version ${sdkBuildVersion}) && exit 0' \
+    --run '[ "$1" = "-license" ] && exit 0'
 
   substitute ${xcode-select} $out/bin/xcode-select \
     --subst-var-by DEVELOPER_DIR $out