79 lines
2.4 KiB
Nix
79 lines
2.4 KiB
Nix
{ lib, stdenv, fetchhg, cmake, glib, gst_all_1, makeWrapper, pkg-config
|
|
, python, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, sqlite, zlib, runtimeShell
|
|
}:
|
|
|
|
stdenv.mkDerivation {
|
|
pname = "retrofe";
|
|
version = "0.6.169";
|
|
|
|
src = fetchhg {
|
|
url = "https://bitbucket.org/teamretro/retrofe";
|
|
rev = "8793e03";
|
|
sha256 = "0cvsg07ff0fdqh5zgiv2fs7s6c98hn150kpxmpw5fn6jilaszwkm";
|
|
};
|
|
|
|
nativeBuildInputs = [ cmake makeWrapper pkg-config python ];
|
|
|
|
buildInputs = [
|
|
glib gst_all_1.gstreamer SDL2 SDL2_image SDL2_mixer SDL2_ttf sqlite zlib
|
|
] ++ (with gst_all_1; [ gst-libav gst-plugins-base gst-plugins-good ]);
|
|
|
|
patches = [ ./include-paths.patch ];
|
|
|
|
configurePhase = ''
|
|
cmake RetroFE/Source -BRetroFE/Build -DCMAKE_BUILD_TYPE=Release \
|
|
-DVERSION_MAJOR=0 -DVERSION_MINOR=0 -DVERSION_BUILD=0 \
|
|
-DGSTREAMER_BASE_INCLUDE_DIRS='${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0'
|
|
'';
|
|
|
|
buildPhase = ''
|
|
cmake --build RetroFE/Build
|
|
python Scripts/Package.py --os=linux --build=full
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
mkdir -p $out/share/retrofe
|
|
cp -r Artifacts/linux/RetroFE $out/share/retrofe/example
|
|
mv $out/share/retrofe/example/retrofe $out/bin/
|
|
|
|
cat > $out/bin/retrofe-init << EOF
|
|
#!${runtimeShell}
|
|
|
|
echo "This will install retrofe's example files into this directory"
|
|
echo "Example files location: $out/share/retrofe/example/"
|
|
|
|
while true; do
|
|
read -p "Do you want to proceed? [yn] " yn
|
|
case \$yn in
|
|
[Yy]* ) cp -r --no-preserve=all $out/share/retrofe/example/* .; break;;
|
|
[Nn]* ) exit;;
|
|
* ) echo "Please answer with yes or no.";;
|
|
esac
|
|
done
|
|
EOF
|
|
|
|
chmod +x $out/bin/retrofe-init
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
# retrofe will look for config files in its install path ($out/bin).
|
|
# When set it will use $RETROFE_PATH instead. Sadly this behaviour isn't
|
|
# documented well. To make it behave more like as expected it's set to
|
|
# $PWD by default here.
|
|
postInstall = ''
|
|
wrapProgram "$out/bin/retrofe" \
|
|
--prefix GST_PLUGIN_PATH : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
|
|
--run 'export RETROFE_PATH=''${RETROFE_PATH:-$PWD}'
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "A frontend for arcade cabinets and media PCs";
|
|
homepage = "http://retrofe.com";
|
|
license = licenses.gpl3Plus;
|
|
maintainers = with maintainers; [ hrdinka ];
|
|
platforms = with platforms; linux;
|
|
};
|
|
}
|