1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cargo,
6 glib,
7 meson,
8 ninja,
9 pkg-config,
10 rustPlatform,
11 rustc,
12 wrapGAppsHook4,
13 gdk-pixbuf,
14 gtk4,
15 libadwaita,
16 libsecret,
17 openssl,
18 sqlite,
19 gettext,
20}:
21
22stdenv.mkDerivation rec {
23 pname = "done";
24 version = "0.2.2";
25
26 src = fetchFromGitHub {
27 owner = "done-devs";
28 repo = "done";
29 rev = "v${version}";
30 hash = "sha256-SbeP7PnJd7jjdXa9uDIAlMAJLOrYHqNP5p9gQclb6RU=";
31 };
32
33 cargoDeps = rustPlatform.fetchCargoVendor {
34 inherit pname version src;
35 hash = "sha256-yEpaQa9hKOq0k9MurihbFM4tDB//TPCJdOgKA9tyqVc=";
36 };
37
38 nativeBuildInputs = [
39 cargo
40 glib
41 meson
42 ninja
43 pkg-config
44 rustPlatform.cargoSetupHook
45 rustc
46 wrapGAppsHook4
47 ];
48
49 buildInputs = [
50 gdk-pixbuf
51 gtk4
52 libadwaita
53 libsecret
54 openssl
55 sqlite
56 ];
57
58 env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
59 GETTEXT_DIR = gettext;
60 };
61
62 meta = with lib; {
63 description = "Ultimate task management solution for seamless organization and efficiency";
64 homepage = "https://done.edfloreshz.dev/";
65 changelog = "https://github.com/done-devs/done/blob/${src.rev}/CHANGES.md";
66 license = licenses.mpl20;
67 mainProgram = "done";
68 maintainers = with maintainers; [ figsoda ];
69 };
70}