python312Packages.types-aiobotocore: 2.15.2 -> 2.15.2.post3 (#361801)
[NixPkgs.git] / pkgs / by-name / vv / vvvvvv / package.nix
blob471a84eecb892a8f514a96b3162503074b658fa8
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , fetchurl
5 , cmake
6 , makeWrapper
7 , copyDesktopItems
8 , makeDesktopItem
9 , faudio
10 , physfs
11 , SDL2
12 , tinyxml-2
13 , Foundation
14 , IOKit
15 , makeAndPlay ? false
18 stdenv.mkDerivation rec {
19   pname = "vvvvvv";
20   version = "2.4.1";
22   src = fetchFromGitHub {
23     owner = "TerryCavanagh";
24     repo = "VVVVVV";
25     rev = version;
26     hash = "sha256-HosrYBzx1Kh7rQIH7IAoOTPgpm4lgYOVR3MWtWX3usQ=";
27     fetchSubmodules = true;
28   };
30   dataZip = fetchurl {
31     url = "https://thelettervsixtim.es/makeandplay/data.zip";
32     name = "data.zip";
33     hash = "sha256-x2eAlZT2Ry2p9WE252ZX44ZA1YQWSkYRIlCsYpPswOo=";
34     meta.license = lib.licenses.unfree;
35   };
37   nativeBuildInputs = [
38     cmake
39     makeWrapper
40     copyDesktopItems
41   ];
43   buildInputs = [
44     faudio
45     physfs
46     SDL2
47     tinyxml-2
48   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ Foundation IOKit ];
50   cmakeDir = "../desktop_version";
52   cmakeFlags = [
53     "-DBUNDLE_DEPENDENCIES=OFF"
54   ] ++ lib.optional makeAndPlay "-DMAKEANDPLAY=ON";
56   desktopItems = [
57     (makeDesktopItem {
58       type = "Application";
59       name = "VVVVVV";
60       desktopName = "VVVVVV";
61       comment = meta.description;
62       exec = "vvvvvv";
63       icon = "VVVVVV";
64       terminal = false;
65       categories = [ "Game" ];
66     })
67   ];
69   installPhase = ''
70     runHook preInstall
72     install -Dm755 VVVVVV $out/bin/vvvvvv
73     install -Dm644 "$src/desktop_version/icon.ico" "$out/share/pixmaps/VVVVVV.png"
74     cp -r "$src/desktop_version/fonts/" "$out/share/"
75     cp -r "$src/desktop_version/lang/" "$out/share/"
77     wrapProgram $out/bin/vvvvvv \
78       --add-flags "-assets ${dataZip}" \
79       --add-flags "-langdir $out/share/lang" \
80       --add-flags "-fontsdir $out/share/fonts"
82     runHook postInstall
83   '';
85   meta = with lib; {
86     description = "A retro-styled platform game" + lib.optionalString makeAndPlay " (redistributable, without original levels)";
87     longDescription = ''
88       VVVVVV is a platform game all about exploring one simple mechanical
89       idea - what if you reversed gravity instead of jumping?
90     '' + lib.optionalString makeAndPlay ''
91       (Redistributable version, doesn't include the original levels.)
92     '';
93     homepage = "https://thelettervsixtim.es";
94     changelog = "https://github.com/TerryCavanagh/VVVVVV/releases/tag/${src.rev}";
95     license = licenses.unfree;
96     maintainers = [ ];
97     platforms = platforms.unix;
98   };