nixpkgs/pkgs/games/planetaryannihilation/default.nix
John Wiegley 28b6fb61e6 Change occurrences of gcc to the more general cc
This is done for the sake of Yosemite, which does not have gcc, and yet
this change is also compatible with Linux.
2014-12-26 11:06:21 -06:00

54 lines
2.2 KiB
Nix
Executable file

{ stdenv, config, fetchurl, patchelf, makeWrapper, xlibs, gtk, glib, udev, alsaLib, atk
, nspr, fontconfig, cairo, pango, nss, freetype, gnome3, gdk_pixbuf, curl, systemd, xorg }:
# TODO: use dynamic attributes once Nix 1.7 is out
assert ((config.planetary_annihilation or null).url or null) != null;
assert ((config.planetary_annihilation or null).sha256 or null) != null;
/* to setup:
$ cat ~/.nixpkgs/config.nix
{
planetary_annihilation = {
url = "file:///home/user/PA_Linux_62857.tar.bz2";
sha256 = "0imi3k5144dsn3ka9khx3dj76klkw46ga7m6rddqjk4yslwabh3k";
};
}
*/
stdenv.mkDerivation {
name = "planetary-annihalation";
src = fetchurl {
inherit (config.planetary_annihilation) url sha256;
};
buildInputs = [ patchelf makeWrapper ];
installPhase = ''
mkdir -p $out/{bin,lib}
cp -R * $out/
mv $out/*.so $out/lib
rm $out/libstdc++.so.6
ln -s $out/PA $out/bin/PA
ln -s ${systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/PA"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.gcc xlibs.libXdamage xorg.libXfixes gtk glib stdenv.glibc "$out" xlibs.libXext pango udev xlibs.libX11 xlibs.libXcomposite alsaLib atk nspr fontconfig cairo pango nss freetype gnome3.gconf gdk_pixbuf xlibs.libXrender ]}:{stdenv.cc.gcc}/lib64:${stdenv.glibc}/lib64" "$out/host/CoherentUI_Host.bin"
wrapProgram $out/PA --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.gcc stdenv.glibc xlibs.libX11 xlibs.libXcursor gtk glib curl "$out" ]}:${stdenv.cc.gcc}/lib64:${stdenv.glibc}/lib64"
for f in $out/lib/*; do
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.gcc curl xlibs.libX11 stdenv.glibc xlibs.libXcursor "$out" ]}:${stdenv.cc.gcc}/lib64:${stdenv.glibc}/lib64" $f
done
'';
meta = with stdenv.lib; {
homepage = http://www.uberent.com/pa/;
description = "next-generation RTS that takes the genre to a planetary scale";
license = stdenv.lib.licenses.unfree;
platforms = platforms.linux;
maintainers = [ maintainers.iElectric ];
};
}