diff options
Diffstat (limited to 'nixpkgs/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix')
-rw-r--r-- | nixpkgs/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix new file mode 100644 index 000000000000..6d3bd103811d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix @@ -0,0 +1,38 @@ +{ stdenv, appleDerivation, xcbuildHook +, Libc, xnu, libutil }: + +appleDerivation { + nativeBuildInputs = [ xcbuildHook ]; + buildInputs = [ libutil ]; + + 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 + substituteInPlace diskdev_cmds.xcodeproj/project.pbxproj \ + --replace 'DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";' "" + ''; + installPhase = '' + install -D Products/Release/libdisk.a $out/lib/libdisk.a + rm Products/Release/libdisk.a + for f in Products/Release/*; do + if [ -f $f ]; then + install -D $f $out/bin/$(basename $f) + fi + done + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} |