1{
2 lib,
3 stdenv,
4 fetchFromGitLab,
5 meson,
6 ninja,
7 pkg-config,
8 rustPlatform,
9 rustc,
10 cargo,
11 wrapGAppsHook4,
12 desktop-file-utils,
13 libadwaita,
14 gst_all_1,
15}:
16
17stdenv.mkDerivation rec {
18 pname = "metronome";
19 version = "1.3.0";
20
21 src = fetchFromGitLab {
22 domain = "gitlab.gnome.org";
23 owner = "World";
24 repo = "metronome";
25 rev = version;
26 hash = "sha256-Sn2Ua/XxPnJjcQvWeOPkphl+BE7/BdOrUIpf+tLt20U=";
27 };
28
29 cargoDeps = rustPlatform.fetchCargoVendor {
30 inherit src;
31 name = "metronome-${version}";
32 hash = "sha256-T/x5LpODpKWGA40W1je6jw1DS9attVUK4ZjAnRAyf6k=";
33 };
34
35 nativeBuildInputs = [
36 meson
37 ninja
38 pkg-config
39 rustPlatform.cargoSetupHook
40 rustc
41 cargo
42 wrapGAppsHook4
43 desktop-file-utils
44 ];
45
46 buildInputs = [
47 libadwaita
48 gst_all_1.gstreamer
49 gst_all_1.gst-plugins-base
50 gst_all_1.gst-plugins-bad
51 ];
52
53 # Workaround for the gettext-sys issue
54 # https://github.com/Koka/gettext-rs/issues/114
55 env.NIX_CFLAGS_COMPILE = lib.optionalString (
56 stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "16"
57 ) "-Wno-error=incompatible-function-pointer-types";
58
59 meta = with lib; {
60 description = "Keep the tempo";
61 longDescription = ''
62 Metronome beats the rhythm for you, you simply
63 need to tell it the required time signature and
64 beats per minutes. You can also tap to let the
65 application guess the required beats per minute.
66 '';
67 homepage = "https://gitlab.gnome.org/World/metronome";
68 license = licenses.gpl3Plus;
69 mainProgram = "metronome";
70 maintainers = with maintainers; [ aleksana ];
71 platforms = platforms.unix;
72 };
73}