summaryrefslogtreecommitdiff
path: root/pkgs/cartridges.nix
blob: 9a62348648aeb59a31d8c333b58b8e803417ff78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{
  blueprint-compiler,
  desktop-file-utils,
  fetchFromGitHub,
  fetchFromGitLab,
  gobject-introspection,
  lib,
  libadwaita,
  meson,
  ninja,
  python3,
  stdenv,
  wrapGAppsHook4,
  ...
}: let
  inherit (lib) licenses platforms;

  # it seems cartridges uses features only available in newer versions of
  # blueprint-compiler
  blueprint-compiler' = blueprint-compiler.overrideAttrs (_: rec {
    version = "0.8.1";
    src = fetchFromGitLab {
      domain = "gitlab.gnome.org";
      owner = "jwestman";
      repo = "blueprint-compiler";
      rev = "v${version}";
      hash = "sha256-3lj9BMN5aNujbhhZjObdTOCQfH5ERQCgGqIAw5eZIQc=";
    };

    doCheck = false;
  });
in
  stdenv.mkDerivation rec {
    pname = "cartridges";
    version = "1.5.4";

    src = fetchFromGitHub {
      owner = "kra-mo";
      repo = "cartridges";
      rev = "v${version}";
      sha256 = "sha256-pOGsuhsBZTFcq+1xsHXtBabV8i9pQw3w6UJnVE3EihM=";
    };

    buildInputs = [
      gobject-introspection
      libadwaita
      (python3.withPackages (p:
        with p; [
          pillow
          pygobject3
          pyyaml
          requests
        ]))
    ];

    nativeBuildInputs = [
      blueprint-compiler'
      desktop-file-utils
      meson
      ninja
      wrapGAppsHook4
    ];

    meta = {
      description = "A GTK4 + Libadwaita game launcher";
      longDescription = ''
        A simple game launcher for all of your games.
        It has support for importing games from Steam, Lutris, Heroic
        and more with no login necessary.
        You can sort and hide games or download cover art from SteamGridDB.
      '';
      homepage = "https://apps.gnome.org/app/hu.kramo.Cartridges/";
      license = licenses.gpl3Plus;
      #maintainers = [maintainers.getchoo];
      platforms = platforms.linux;
    };
  }