depot/third_party/nixpkgs/pkgs/by-name/re/retrofe/package.nix

109 lines
2.4 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
cmake,
glib,
gst_all_1,
makeWrapper,
pkg-config,
python3,
SDL2,
SDL2_image,
SDL2_mixer,
SDL2_ttf,
sqlite,
zlib,
runtimeShell,
}:
stdenv.mkDerivation {
pname = "retrofe";
version = "0.10.31";
src = fetchFromGitHub {
owner = "phulshof";
repo = "RetroFE";
rev = "2ddd65a76210d241031c4ac9268255f311df25d1";
sha256 = "sha256-uBfECbU2Df/pPpEXXq62S7Ec0YU4lPIsZ8k5UmKD7xQ=";
};
nativeBuildInputs = [
cmake
makeWrapper
pkg-config
python3
];
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
]);
configurePhase = ''
cmake RetroFE/Source -BRetroFE/Build -DCMAKE_BUILD_TYPE=Release \
-DVERSION_MAJOR=0 -DVERSION_MINOR=0 -DVERSION_BUILD=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 = "Frontend for arcade cabinets and media PCs";
homepage = "http://retrofe.nl/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ hrdinka ];
platforms = with platforms; linux;
};
}