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.
36 lines
1.2 KiB
Nix
36 lines
1.2 KiB
Nix
{ stdenv, appleDerivation, xcbuildHook, zlib, bzip2, lzma, ncurses, libutil-new }:
|
|
|
|
appleDerivation rec {
|
|
nativeBuildInputs = [ xcbuildHook ];
|
|
buildInputs = [ zlib bzip2 lzma ncurses libutil-new ];
|
|
|
|
# some commands not working:
|
|
# mtree: _simple.h not found
|
|
# ipcs: sys/ipcs.h not found
|
|
# so remove their targets from the project
|
|
patchPhase = ''
|
|
substituteInPlace file_cmds.xcodeproj/project.pbxproj \
|
|
--replace "FC8A8CAA14B655FD001B97AD /* PBXTargetDependency */," "" \
|
|
--replace "FC8A8C9C14B655FD001B97AD /* PBXTargetDependency */," "" \
|
|
--replace "productName = file_cmds;" "" \
|
|
--replace '/usr/lib/libcurses.dylib' 'libncurses.dylib'
|
|
sed -i -re "s/name = ([a-zA-Z]+);/name = \1; productName = \1;/" file_cmds.xcodeproj/project.pbxproj
|
|
'';
|
|
|
|
# temporary install phase until xcodebuild has "install" support
|
|
installPhase = ''
|
|
mkdir -p $out/bin/
|
|
install Products/Release/* $out/bin
|
|
|
|
for n in 1; do
|
|
mkdir -p $out/share/man/man$n
|
|
install */*.$n $out/share/man/man$n
|
|
done
|
|
'';
|
|
|
|
meta = {
|
|
platforms = stdenv.lib.platforms.darwin;
|
|
maintainers = with stdenv.lib.maintainers; [ matthewbauer ];
|
|
};
|
|
}
|