forked from mirrors/nixpkgs
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.
35 lines
969 B
Nix
35 lines
969 B
Nix
{ stdenv, appleDerivation, xcbuildHook
|
|
, lib, hostPlatform, Libc, xnu, libutil-new }:
|
|
|
|
appleDerivation {
|
|
nativeBuildInputs = [ xcbuildHook ];
|
|
buildInputs = [ libutil-new ];
|
|
|
|
NIX_CFLAGS_COMPILE = "-I.";
|
|
NIX_LDFLAGS = "-lutil";
|
|
patchPhase = ''
|
|
# ugly hacks for missing headers
|
|
# most are bsd related - probably should make this a drv
|
|
unpackFile ${Libc.src}
|
|
unpackFile ${xnu.src}
|
|
mkdir System sys machine i386
|
|
cp xnu-*/bsd/sys/disklabel.h sys
|
|
cp xnu-*/bsd/machine/disklabel.h machine
|
|
cp xnu-*/bsd/i386/disklabel.h i386
|
|
cp -r xnu-*/bsd/sys System
|
|
cp -r Libc-*/uuid System
|
|
'';
|
|
installPhase = ''
|
|
install -D Products/Release/libdisk.a $out/lib/libdisk.a
|
|
rm Products/Release/libdisk.a
|
|
for bin in Products/Release/*; do
|
|
install -D $bin $out/bin/$(basename $bin)
|
|
done
|
|
'';
|
|
|
|
meta = {
|
|
platforms = stdenv.lib.platforms.darwin;
|
|
maintainers = with stdenv.lib.maintainers; [ matthewbauer ];
|
|
};
|
|
}
|