pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / games / marble-marcher-ce / default.nix
blobee1422abc5b8e00f35bff7f692e135fcd85b7926
1 { lib
2 , stdenv
3 , makeWrapper
4 , makeDesktopItem
5 , copyDesktopItems
6 , fetchFromGitHub
7 , sfml
8 , anttweakbar
9 , glm
10 , eigen
11 , glew
12 , cmake
14 stdenv.mkDerivation rec {
15   pname = "marble-marcher-ce";
16   version = "1.4.5";
18   src = fetchFromGitHub {
19     owner = "WAUthethird";
20     repo = "Marble-Marcher-Community-Edition";
21     rev = version;
22     hash = "sha256-m5i/Q4k5S4wcojHqMYS7e1W/Ph7q/95j3oOK2xbrHSk=";
23   };
25   buildInputs = [ sfml anttweakbar glm eigen glew ];
26   nativeBuildInputs = [ cmake makeWrapper copyDesktopItems ];
27   installFlags = [ "DESTDIR=$(out)" ];
29   prePatch = ''
30     # the path /home/MMCE is always added to DESTDIR
31     # we change this to a more sensible path
32     # see https://github.com/WAUthethird/Marble-Marcher-Community-Edition/issues/23
33     substituteInPlace CMakeLists.txt \
34       --replace '/home/MMCE' '/share/MMCE'
35   '';
37   postInstall = ''
38     mkdir $out/bin
39     mkdir -p $out/share/icons/
40     # The executable has to be run from the same directory the assets are in
41     makeWrapper $out/share/MMCE/MarbleMarcher $out/bin/${pname} --chdir $out/share/MMCE
42     ln -s $out/share/MMCE/images/MarbleMarcher.png $out/share/icons/${pname}.png
43   '';
45   desktopItems = [
46     (makeDesktopItem {
47       name = pname;
48       exec = pname;
49       icon = pname;
50       desktopName = pname;
51       comment = meta.description;
52       categories = [ "Game" ];
53     })
54   ];
56   meta = with lib; {
57     description = "A community-developed version of the original Marble Marcher - a fractal physics game";
58     mainProgram = "marble-marcher-ce";
59     homepage = "https://michaelmoroz.itch.io/mmce";
60     license = with licenses; [
61       gpl2Plus # Code
62       cc-by-30 # Assets
63       ofl # Fonts
64     ];
65     maintainers = with maintainers; [ rampoina ];
66     platforms = platforms.linux;
67   };