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.
47 lines
1.7 KiB
Nix
47 lines
1.7 KiB
Nix
{ stdenv, appleDerivation, xcbuildHook
|
|
, openssl, Librpcsvc, xnu, libpcap, developer_cmds }:
|
|
|
|
appleDerivation rec {
|
|
nativeBuildInputs = [ xcbuildHook ];
|
|
buildInputs = [ openssl xnu Librpcsvc libpcap developer_cmds ];
|
|
|
|
NIX_CFLAGS_COMPILE = " -I./unbound -I${xnu}/Library/Frameworks/System.framework/Headers/";
|
|
|
|
# "spray" requires some files that aren't compiling correctly in xcbuild.
|
|
# "rtadvd" seems to fail with some missing constants.
|
|
# "traceroute6" and "ping6" require ipsec which doesn't build correctly
|
|
patchPhase = ''
|
|
substituteInPlace network_cmds.xcodeproj/project.pbxproj \
|
|
--replace "7294F0EA0EE8BAC80052EC88 /* PBXTargetDependency */," "" \
|
|
--replace "7216D34D0EE89FEC00AE70E4 /* PBXTargetDependency */," "" \
|
|
--replace "72CD1D9C0EE8C47C005F825D /* PBXTargetDependency */," "" \
|
|
--replace "7216D2C20EE89ADF00AE70E4 /* PBXTargetDependency */," ""
|
|
'';
|
|
|
|
# temporary install phase until xcodebuild has "install" support
|
|
installPhase = ''
|
|
mkdir -p $out/bin/
|
|
install Products/Release/* $out/bin/
|
|
|
|
for n in 1 5; do
|
|
mkdir -p $out/share/man/man$n
|
|
install */*.$n $out/share/man/man$n
|
|
done
|
|
|
|
# TODO: patch files to load from $out/ instead of /usr/
|
|
|
|
# mkdir -p $out/etc/
|
|
# install rtadvd.tproj/rtadvd.conf ip6addrctl.tproj/ip6addrctl.conf $out/etc/
|
|
|
|
# mkdir -p $out/local/OpenSourceVersions/
|
|
# install network_cmds.plist $out/local/OpenSourceVersions/
|
|
|
|
# mkdir -p $out/System/Library/LaunchDaemons
|
|
# install kdumpd.tproj/com.apple.kdumpd.plist $out/System/Library/LaunchDaemons
|
|
'';
|
|
|
|
meta = {
|
|
platforms = stdenv.lib.platforms.darwin;
|
|
maintainers = with stdenv.lib.maintainers; [ matthewbauer ];
|
|
};
|
|
}
|