nixpkgs/pkgs/by-name/me/metronome/package.nix
2024-03-03 23:18:06 +08:00

79 lines
1.7 KiB
Nix

{ lib
, stdenv
, fetchFromGitLab
, meson
, ninja
, pkg-config
, rustPlatform
, rustc
, cargo
, wrapGAppsHook4
, desktop-file-utils
, libadwaita
, gst_all_1
, darwin
}:
stdenv.mkDerivation rec {
pname = "metronome";
version = "1.3.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "metronome";
rev = version;
hash = "sha256-Sn2Ua/XxPnJjcQvWeOPkphl+BE7/BdOrUIpf+tLt20U=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "metronome-${version}";
hash = "sha256-HYO/IY5yGW8JLBxD/SZz16GFnwvv77kFl/x+QXhV+V0=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
rustc
cargo
wrapGAppsHook4
desktop-file-utils
];
buildInputs = [
libadwaita
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-bad
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Foundation
];
# Workaround for the gettext-sys issue
# https://github.com/Koka/gettext-rs/issues/114
env.NIX_CFLAGS_COMPILE = lib.optionalString
(
stdenv.cc.isClang &&
lib.versionAtLeast stdenv.cc.version "16"
)
"-Wno-error=incompatible-function-pointer-types";
meta = with lib; {
description = "Keep the tempo";
longDescription = ''
Metronome beats the rhythm for you, you simply
need to tell it the required time signature and
beats per minutes. You can also tap to let the
application guess the required beats per minute.
'';
homepage = "https://gitlab.gnome.org/World/metronome";
license = licenses.gpl3Plus;
mainProgram = "metronome";
maintainers = with maintainers; [ aleksana ];
platforms = platforms.unix;
};
}