157 lines
3.5 KiB
Nix
157 lines
3.5 KiB
Nix
{
|
|
fetchurl,
|
|
lib,
|
|
stdenv,
|
|
libGLU,
|
|
libGL,
|
|
libglut,
|
|
libX11,
|
|
plib,
|
|
openal,
|
|
freealut,
|
|
libXrandr,
|
|
xorgproto,
|
|
libXext,
|
|
libSM,
|
|
libICE,
|
|
libXi,
|
|
libXt,
|
|
libXrender,
|
|
libXxf86vm,
|
|
openscenegraph,
|
|
expat,
|
|
libpng,
|
|
zlib,
|
|
bash,
|
|
SDL2,
|
|
SDL2_mixer,
|
|
enet,
|
|
libjpeg,
|
|
cmake,
|
|
pkg-config,
|
|
libvorbis,
|
|
runtimeShell,
|
|
curl,
|
|
copyDesktopItems,
|
|
makeDesktopItem,
|
|
}:
|
|
|
|
let
|
|
version = "2.3.0-r8786";
|
|
shortVersion = builtins.substring 0 5 version;
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
inherit version;
|
|
pname = "speed-dreams";
|
|
|
|
src = fetchurl {
|
|
url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-base-${version}.tar.xz";
|
|
sha256 = "sha256-DUyMs9Hr1PYgmNVwBY/e6snVeGl9GX0AnZ7S+TFABKQ=";
|
|
};
|
|
|
|
cars-and-tracks = fetchurl {
|
|
url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-hq-cars-and-tracks-${version}.tar.xz";
|
|
sha256 = "sha256-WT+W6uuw4BRSbF1Cw123q3v9qSCvBQ7TcQ/Y0RV/7Js=";
|
|
};
|
|
|
|
more-cars-and-tracks = fetchurl {
|
|
url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-more-hq-cars-and-tracks-${version}.tar.xz";
|
|
sha256 = "sha256-psApv+Z1HDFvh5bzt125mo/ZvO5rjee/KhOf45iKnKk=";
|
|
};
|
|
|
|
wip-cars-and-tracks = fetchurl {
|
|
url = "mirror://sourceforge/speed-dreams/${shortVersion}/speed-dreams-src-wip-cars-and-tracks-${version}.tar.xz";
|
|
sha256 = "sha256-OEAbqFfO2PzHP7+eAtPNn3Ql6fYNTKzzQW8lHe9KDXM=";
|
|
};
|
|
|
|
sourceRoot = ".";
|
|
|
|
postUnpack = ''
|
|
echo Unpacking data
|
|
tar -xf ${cars-and-tracks}
|
|
tar -xf ${more-cars-and-tracks}
|
|
tar -xf ${wip-cars-and-tracks}
|
|
'';
|
|
|
|
preBuild = ''
|
|
make -C src/libs/portability
|
|
make -C src/libs/portability portability.o
|
|
ar -rv "$(echo lib*/games/speed-dreams*/lib)"/libportability_static.a src/libs/portability/CMakeFiles/portability.dir/portability.cpp.o
|
|
export NIX_LDFLAGS="$NIX_LDFLAGS -L$(echo $PWD/lib*/games/speed-dreams*/lib) -lexpat"
|
|
echo "libportability_static.a built"
|
|
'';
|
|
|
|
postInstall = ''
|
|
mkdir "$out/bin"
|
|
for i in "$out"/games/*; do
|
|
echo '#!${runtimeShell}' >> "$out/bin/$(basename "$i")"
|
|
echo "$i"' "$@"' >> "$out/bin/$(basename "$i")"
|
|
chmod a+x "$out/bin/$(basename "$i")"
|
|
done
|
|
|
|
mkdir -p $out/share/pixmaps/
|
|
ln -s "$out/share/games/speed-dreams-2/data/icons/icon.png" "$out/share/pixmaps/speed-dreams-2.png"
|
|
'';
|
|
|
|
desktopItems = [
|
|
(makeDesktopItem {
|
|
name = "Speed Dreams 2";
|
|
exec = "speed-dreams-2";
|
|
icon = "speed-dreams-2.png";
|
|
desktopName = "speed-dreams-2";
|
|
comment = "The Open Racing Car Simulator Fork";
|
|
categories = [
|
|
"Application"
|
|
"Game"
|
|
];
|
|
})
|
|
];
|
|
|
|
# RPATH of binary /nix/store/.../lib64/games/speed-dreams-2/drivers/shadow_sc/shadow_sc.so contains a forbidden reference to /build/
|
|
cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=ON" ];
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
cmake
|
|
copyDesktopItems
|
|
];
|
|
|
|
buildInputs = [
|
|
libpng
|
|
libGLU
|
|
libGL
|
|
libglut
|
|
libX11
|
|
plib
|
|
openal
|
|
freealut
|
|
libXrandr
|
|
xorgproto
|
|
libXext
|
|
libSM
|
|
libICE
|
|
libXi
|
|
libXt
|
|
libXrender
|
|
libXxf86vm
|
|
zlib
|
|
bash
|
|
expat
|
|
SDL2
|
|
SDL2_mixer
|
|
enet
|
|
libjpeg
|
|
openscenegraph
|
|
libvorbis
|
|
curl
|
|
];
|
|
|
|
meta = {
|
|
description = "Car racing game - TORCS fork with more experimental approach";
|
|
homepage = "https://speed-dreams.sourceforge.net/";
|
|
license = lib.licenses.gpl2Plus;
|
|
maintainers = with lib.maintainers; [ raskin ];
|
|
platforms = lib.platforms.linux;
|
|
hydraPlatforms = [ ];
|
|
};
|
|
}
|