nixpkgs/pkgs/games/ue4demos/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

193 lines
5.7 KiB
Nix

{ stdenv, fetchurl, unzip, patchelf, xlibs, openal }:
assert stdenv.isLinux;
assert stdenv.isx86_64;
let
buildDemo = { name, src }:
stdenv.mkDerivation rec {
inherit name src;
buildInputs = [ unzip patchelf ];
rtdeps = stdenv.lib.makeLibraryPath
[ xlibs.libXxf86vm xlibs.libXext openal ]
+ ":" + stdenv.lib.makeSearchPath "lib64" [ stdenv.cc.gcc ];
buildCommand =
''
mkdir -p "$out"
cd $out
unzip $src
interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
binary=$(find . -executable -type f)
patchelf \
--set-interpreter $interpreter \
--set-rpath ${rtdeps} \
"$binary"
# Workaround on
# LogLinuxPlatformFile:Warning: open('/nix/store/hash-ue4demos-demo/demo/demo/Saved/Config/CleanSourceConfigs/Engine.ini', Flags=0x00080241) failed: errno=2 (No such file or directory)
# for Vehicle, Shooter and Strategy games.
ls | grep ' ' && $(
haxname=$(ls | grep ' ' | sed 's/ //g'); \
haxpath=$(ls | grep ' ')/$haxname/Saved; \
mkdir -p "$haxpath"/Config/CleanSourceConfigs; \
ln -s /dev/null "$haxpath"/Config/CleanSourceConfigs/Engine.ini; \
mkdir -p "$haxpath"/Logs; \
ln -s /dev/null "$haxpath"/Logs/$haxname.log)
# Executables are buried under a varied paths across demos.
mkdir bin
cd bin
ln -s "$out/$binary" $(basename "$out/$binary")
'';
meta = {
description = "Unreal Engine 4 Linux demos";
homepage = https://wiki.unrealengine.com/Linux_Demos;
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.unfree;
};
};
in {
tappy_chicken = buildDemo rec {
name = "ue4demos-tappy_chicken";
src = fetchurl {
url = "http://ue4linux.raxxy.com/tappy_chicken.zip";
sha256 = "0lwhvk3lpb2r5ng2cnzk7fpjj5lwhy2sch1a8v154x1xfhfb3h4v";
};
};
swing_ninja = buildDemo rec {
name = "ue4demos-swing_ninja";
src = fetchurl {
url = "http://ue4linux.raxxy.com/swing_ninja.zip";
sha256 = "1bmgqqk3lda5h7nnqi59jgyrsn0clr3xs0k1jclnqf9fk0m8hjcv";
};
};
card_game = buildDemo rec {
name = "ue4demos-card_game";
src = fetchurl {
url = "http://ue4linux.raxxy.com/card_game.zip";
sha256 = "154baqias5q7kad0c89k35jbmnmlm865sll02mi7bk1yllcckz5z";
};
};
vehicle_game = buildDemo rec {
name = "ue4demos-vehicle_game";
src = fetchurl {
url = "http://ue4linux.raxxy.com/vehicle_game.zip";
sha256 = "03dlacf1iv7sgn7pl3sx9r6243wy8fsi2kd858syfm9slg0190bs";
};
};
shooter_game = buildDemo rec {
name = "ue4demos-shooter_game";
src = fetchurl {
url = "http://ue4linux.raxxy.com/shooter_game.zip";
sha256 = "1bk32k349iqbqk8x8jffnqq0pjiqmvrvv675xxmlvkkr8qrlhz98";
};
};
strategy_game = buildDemo rec {
name = "ue4demos-strategy_game";
src = fetchurl {
url = "http://ue4linux.raxxy.com/strategy_game.zip";
sha256 = "1p7i966v1ssm20y12g4wsccpgnky3szy19qyjlacynk7bgbk6lg7";
};
};
black_jack = buildDemo rec {
name = "ue4demos-black_jack";
src = fetchurl {
url = "http://ue4linux.raxxy.com/black_jack.zip";
sha256 = "0g52wkzn5isa3az32y25yx5b56wxks97pajqwkmm6gf4qpkfksxv";
};
};
landscape_mountains = buildDemo rec {
name = "ue4demos-landscape_mountains";
src = fetchurl {
url = "http://ue4linux.raxxy.com/landscape_mountains.zip";
sha256 = "14jzajhs3cpydvf3ag7lpj4hkpbjpwnn3xkdvdx92fi0pcl8cwym";
};
};
matinee_demo = buildDemo rec {
name = "ue4demos-matinee_demo";
src = fetchurl {
url = "http://ue4linux.raxxy.com/matinee_demo.zip";
sha256 = "0ib8k6fl15cxzdarar2sqq5v3g3c7p2jidkdjd00nym6cvkibb4d";
};
};
elemental_demo = buildDemo rec {
name = "ue4demos-elemental_demo";
src = fetchurl {
url = "http://ue4linux.raxxy.com/elemental_demo.zip";
sha256 = "1v4jdsy8jvv8wgc8dx17q17xigfrya5q0nfdzw4md7fzm3bg9z0v";
};
};
effects_cave_demo = buildDemo rec {
name = "ue4demos-effects_cave_demo";
src = fetchurl {
url = "http://ue4linux.raxxy.com/effects_cave_demo.zip";
sha256 = "0lvd3aaha2x9pnpkdmrzi6nf7hymr95834z3l8shygjf9kbbzsz4";
};
};
realistic_rendering = buildDemo rec {
name = "ue4demos-realistic_rendering";
src = fetchurl {
url = "http://ue4linux.raxxy.com/realistic_rendering_demo.zip";
sha256 = "0r16nznkv475hkw5rnngqsc69ch8vh86dppyyyr9nn43dkr2110a";
};
};
reflections_subway = buildDemo rec {
name = "ue4demos-reflections_subway";
src = fetchurl {
url = "http://ue4linux.raxxy.com/reflections_subway_demo.zip";
sha256 = "0dw5sm7405gxw9iqz0vpnhdprrb4wl5i14pvzl1381k973m8bd00";
};
};
scifi_hallway_demo = buildDemo rec {
name = "ue4demos-scifi_hallway_demo";
src = fetchurl {
url = "http://ue4linux.raxxy.com/sci-fi_hallway_demo.zip";
sha256 = "14qp9iwm47awn8d9j6ijh6cnds308x60xs4vi2fvz2666jlz1pq2";
};
};
mobile_temple_demo = buildDemo rec {
name = "ue4demos-mobile_temple_demo";
src = fetchurl {
url = "http://ue4linux.raxxy.com/mobile_temple_demo.zip";
sha256 = "12bz4h1b9lhmqglwsa6r8q48ijqbjdha9fql31540d01kigaka75";
};
};
stylized_demo = buildDemo rec {
name = "ue4demos-stylized_demo";
src = fetchurl {
url = "http://ue4linux.raxxy.com/stylized_demo.zip";
sha256 = "1676ridmj8rk4y4hbdscfnnka5l636av1xxl0qwvk236kq9j7v0l";
};
};
blueprint_examples_demo = buildDemo rec {
name = "ue4demos-blueprint_examples_demo";
src = fetchurl {
url = "http://ue4linux.raxxy.com/blueprint_examples_demo.zip";
sha256 = "076q33h2hy965fvr805hsprkpcmizf638lj2ik8k923v86b15nbv";
};
};
}