Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / games / opensupaplex / default.nix
blob83c7f8b5c9b0215421dde956091e6cfd25b47a77
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchurl
5 , makeDesktopItem
6 , copyDesktopItems
7 , testers
8 , opensupaplex
9 , SDL2
10 , SDL2_mixer
13 let
14   # Doesn't seem to be included in tagged releases, but does exist on master.
15   icon = fetchurl {
16     url = "https://raw.githubusercontent.com/sergiou87/open-supaplex/b102548699cf16910b59559f689ecfad88d2a7d2/open-supaplex.svg";
17     sha256 = "sha256-nKeSBUGjSulbEP7xxc6smsfCRjyc/xsLykH0o3Rq5wo=";
18   };
20 stdenv.mkDerivation rec {
21   pname = "opensupaplex";
22   version = "7.1.2";
24   src = fetchFromGitHub {
25     owner = "sergiou87";
26     repo = "open-supaplex";
27     rev = "v${version}";
28     sha256 = "sha256-hP8dJlLXE5J/oxPhRkrrBl1Y5e9MYbJKi8OApFM3+GU=";
29   };
31   nativeBuildInputs = [
32     SDL2 # For "sdl2-config"
33     copyDesktopItems
34   ];
35   buildInputs = [ SDL2_mixer ];
37   enableParallelBuilding = true;
39   env.NIX_CFLAGS_COMPILE = toString [
40     "-DFILE_DATA_PATH=${placeholder "out"}/lib/opensupaplex"
41     "-DFILE_FHS_XDG_DIRS"
42   ];
44   preBuild = ''
45     # Makefile is located in this directory
46     pushd linux
47   '';
49   postBuild = ''
50     popd
51   '';
53   installPhase = ''
54     runHook preInstall
56     mkdir -p $out/{bin,lib,share/icons/hicolor/scalable/apps}
58     install -D ./linux/opensupaplex $out/bin/opensupaplex
59     cp -R ./resources $out/lib/opensupaplex
60     cp ${icon} $out/share/icons/hicolor/scalable/apps/open-supaplex.svg
62     runHook postInstall
63   '';
65   passthru.tests.version = testers.testVersion {
66     package = opensupaplex;
67     command = "opensupaplex --help";
68     version = "v${version}";
69   };
71   desktopItems = [(makeDesktopItem {
72     name = "opensupaplex";
73     exec = meta.mainProgram;
74     icon = "open-supaplex";
75     desktopName = "OpenSupaplex";
76     comment = meta.description;
77     categories = [ "Application" "Game" ];
78   })];
80   meta = with lib; {
81     description = "A decompilation of Supaplex in C and SDL";
82     homepage = "https://github.com/sergiou87/open-supaplex";
83     changelog = "https://github.com/sergiou87/open-supaplex/blob/master/changelog/v${version}.txt";
84     license = licenses.gpl3Only;
85     maintainers = [ maintainers.ivar ];
86     platforms = platforms.linux; # Many more are supported upstream, but only linux is tested.
87     mainProgram = "opensupaplex";
88   };