mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-25 03:17:13 +00:00
0534ceac81
Not every package that needs xcbuild will want to use its build phase. I have moved the xcbuild setup hook to the new attribute xcbuildHook. This means that dontUseXcbuild is no longer needed. If you just need to call xcbuild on its own you can just refer to xcbuild.
48 lines
1.5 KiB
Nix
48 lines
1.5 KiB
Nix
{ stdenv, appleDerivation, xcbuildHook }:
|
|
|
|
appleDerivation rec {
|
|
nativeBuildInputs = [ xcbuildHook ];
|
|
|
|
patchPhase = ''
|
|
# NOTE: these hashes must be recalculated for each version change
|
|
|
|
# disables:
|
|
# - su ('security/pam_appl.h' file not found)
|
|
# - find (Undefined symbol '_get_date')
|
|
# - w (Undefined symbol '_res_9_init')
|
|
# - expr
|
|
substituteInPlace shell_cmds.xcodeproj/project.pbxproj \
|
|
--replace "FCBA168714A146D000AA698B /* PBXTargetDependency */," "" \
|
|
--replace "FCBA165914A146D000AA698B /* PBXTargetDependency */," "" \
|
|
--replace "FCBA169514A146D000AA698B /* PBXTargetDependency */," "" \
|
|
--replace "FCBA165514A146D000AA698B /* PBXTargetDependency */," ""
|
|
|
|
# disable w, test install
|
|
# get rid of permission stuff
|
|
substituteInPlace xcodescripts/install-files.sh \
|
|
--replace 'ln -f "$BINDIR/w" "$BINDIR/uptime"' "" \
|
|
--replace 'ln -f "$DSTROOT/bin/test" "$DSTROOT/bin/["' "" \
|
|
--replace "-o root -g wheel -m 0755" "" \
|
|
--replace "-o root -g wheel -m 0644" ""
|
|
'';
|
|
|
|
# temporary install phase until xcodebuild has "install" support
|
|
installPhase = ''
|
|
mkdir -p $out/usr/bin
|
|
install Products/Release/* $out/usr/bin
|
|
|
|
export DSTROOT=$out
|
|
export SRCROOT=$PWD
|
|
. xcodescripts/install-files.sh
|
|
|
|
mv $out/usr/* $out
|
|
mv $out/private/etc $out
|
|
rmdir $out/usr $out/private
|
|
'';
|
|
|
|
meta = {
|
|
platforms = stdenv.lib.platforms.darwin;
|
|
maintainers = with stdenv.lib.maintainers; [ matthewbauer ];
|
|
};
|
|
}
|