biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / emulators / retrofe / default.nix
blob37e05f744d8bf116744ddab8b22bccb375623af4
1 { lib, stdenv, fetchFromGitHub, cmake, glib, gst_all_1, makeWrapper, pkg-config
2 , python3, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, sqlite, zlib, runtimeShell
3 }:
5 stdenv.mkDerivation {
6   pname = "retrofe";
7   version = "0.10.31";
9   src = fetchFromGitHub {
10     owner = "phulshof";
11     repo = "RetroFE";
12     rev = "2ddd65a76210d241031c4ac9268255f311df25d1";
13     sha256 = "sha256-uBfECbU2Df/pPpEXXq62S7Ec0YU4lPIsZ8k5UmKD7xQ=";
14   };
16   nativeBuildInputs = [ cmake makeWrapper pkg-config python3 ];
18   buildInputs = [
19     glib gst_all_1.gstreamer SDL2 SDL2_image SDL2_mixer SDL2_ttf sqlite zlib
20   ] ++ (with gst_all_1; [ gst-libav gst-plugins-base gst-plugins-good ]);
22   configurePhase = ''
23     cmake RetroFE/Source -BRetroFE/Build -DCMAKE_BUILD_TYPE=Release \
24       -DVERSION_MAJOR=0 -DVERSION_MINOR=0 -DVERSION_BUILD=0 \
25   '';
27   buildPhase = ''
28     cmake --build RetroFE/Build
29     python Scripts/Package.py --os=linux --build=full
30   '';
32   installPhase = ''
33     mkdir -p $out/bin
34     mkdir -p $out/share/retrofe
35     cp -r Artifacts/linux/RetroFE $out/share/retrofe/example
36     mv $out/share/retrofe/example/retrofe $out/bin/
38     cat > $out/bin/retrofe-init << EOF
39     #!${runtimeShell}
41     echo "This will install retrofe's example files into this directory"
42     echo "Example files location: $out/share/retrofe/example/"
44     while true; do
45         read -p "Do you want to proceed? [yn] " yn
46         case \$yn in
47             [Yy]* ) cp -r --no-preserve=all $out/share/retrofe/example/* .; break;;
48             [Nn]* ) exit;;
49             * ) echo "Please answer with yes or no.";;
50         esac
51     done
52     EOF
54     chmod +x $out/bin/retrofe-init
56     runHook postInstall
57   '';
59   # retrofe will look for config files in its install path ($out/bin).
60   # When set it will use $RETROFE_PATH instead. Sadly this behaviour isn't
61   # documented well. To make it behave more like as expected it's set to
62   # $PWD by default here.
63   postInstall = ''
64     wrapProgram "$out/bin/retrofe" \
65       --prefix GST_PLUGIN_PATH : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
66       --run 'export RETROFE_PATH=''${RETROFE_PATH:-$PWD}'
67   '';
69   meta = with lib; {
70     description = "Frontend for arcade cabinets and media PCs";
71     homepage = "http://retrofe.nl/";
72     license = licenses.gpl3Plus;
73     maintainers = with maintainers; [ hrdinka ];
74     platforms = with platforms; linux;
75   };