biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / networking / lxi-tools / default.nix
blob1fcb0676194aae27868641292fe95266a2faff68
1 { lib, stdenv, fetchFromGitHub
2 , meson, ninja, cmake, pkg-config
3 , liblxi, readline, lua, bash-completion
4 , wrapGAppsHook4
5 , glib, gtk4, gtksourceview5, libadwaita, json-glib
6 , desktop-file-utils, appstream-glib
7 , gsettings-desktop-schemas
8 , withGui ? false
9 }:
11 stdenv.mkDerivation rec {
12   pname = "lxi-tools";
13   version = "2.7";
15   src = fetchFromGitHub {
16     owner = "lxi-tools";
17     repo = "lxi-tools";
18     rev = "v${version}";
19     sha256 = "sha256-69B3wW4lg6GxSpEKhuFYKTuAyd+QYb4WNbNVdZnRUt8=";
20   };
22   nativeBuildInputs = [
23     meson ninja cmake pkg-config
24   ] ++ lib.optional withGui wrapGAppsHook4;
26   buildInputs = [
27     liblxi readline lua bash-completion
28   ] ++ lib.optionals withGui [
29     glib gtk4 gtksourceview5 libadwaita json-glib
30     desktop-file-utils appstream-glib
31     gsettings-desktop-schemas
32   ];
34   postUnpack = "sed -i '/meson.add_install.*$/d' source/meson.build";
36   mesonFlags = lib.optional (!withGui) "-Dgui=false";
38   postInstall = lib.optionalString withGui
39     "glib-compile-schemas $out/share/glib-2.0/schemas";
41   meta = with lib; {
42     description = "Tool for communicating with LXI compatible instruments";
43     longDescription = ''
44       lxi-tools is a collection of open source software tools
45       that enables control of LXI compatible instruments such
46       as modern oscilloscopes, power supplies,
47       spectrum analyzers etc.
48     '';
49     homepage = "https://lxi-tools.github.io/";
50     license = licenses.bsd3;
51     platforms = platforms.unix;
52     maintainers = [ maintainers.vq ];
53     mainProgram = "lxi";
54   };