lib.packagesFromDirectoryRecursive: Improved documentation (#359898)
[NixPkgs.git] / pkgs / by-name / gu / gusb / package.nix
blobc49df7fd75fe9a91313bd4e581dcb9c9c768409d
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , substituteAll
5 , meson
6 , ninja
7 , pkg-config
8 , buildPackages
9 , withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
10 , gobject-introspection
11 , gi-docgen
12 , python3
13 , glib
14 , libusb1
15 , json-glib
16 , vala
17 , hwdata
18 , umockdev
21 let
22   pythonEnv = python3.pythonOnBuildForHost.withPackages (ps: with ps; [
23     setuptools
24   ]);
26 stdenv.mkDerivation rec {
27   pname = "gusb";
28   version = "0.4.9";
30   outputs = [ "bin" "out" "dev" ]
31     ++ lib.optionals withIntrospection [ "devdoc" ];
33   src = fetchFromGitHub {
34     owner = "hughsie";
35     repo = "libgusb";
36     rev = "refs/tags/${version}";
37     hash = "sha256-piIPNLc3deToyQaajXFvM+CKh9ni8mb0P3kb+2RoJOs=";
38   };
40   patches = [
41     (substituteAll {
42       src = ./fix-python-path.patch;
43       python = "${pythonEnv}/bin/python3";
44     })
45   ];
47   strictDeps = true;
49   depsBuildBuild = [
50     pkg-config
51   ];
53   nativeBuildInputs = [
54     meson
55     ninja
56     pkg-config
57   ] ++ lib.optionals withIntrospection [
58     gobject-introspection
59     gi-docgen
60     vala
61   ];
63   # all required in gusb.pc
64   propagatedBuildInputs = [
65     glib
66     libusb1
67     json-glib
68   ];
70   mesonFlags = [
71     (lib.mesonBool "docs" withIntrospection)
72     (lib.mesonBool "introspection" withIntrospection)
73     (lib.mesonBool "tests" doCheck)
74     (lib.mesonBool "vapi" withIntrospection)
75     (lib.mesonOption "usb_ids" "${hwdata}/share/hwdata/usb.ids")
76   ];
78   checkInputs = [
79     umockdev
80   ];
82   doCheck = false; # tests try to access USB
84   postFixup = ''
85     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
86     moveToOutput "share/doc" "$devdoc"
87   '';
89   meta = with lib; {
90     description = "GLib libusb wrapper";
91     mainProgram = "gusbcmd";
92     homepage = "https://github.com/hughsie/libgusb";
93     license = licenses.lgpl21;
94     maintainers = [ maintainers.marcweber ];
95     platforms = platforms.unix;
96   };