Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / libqmi / default.nix
blob6f7583d563b104609a77f4a27620289a0c0cdb05
1 { lib
2 , stdenv
3 , fetchFromGitLab
4 , meson
5 , ninja
6 , pkg-config
7 , gobject-introspection
8 , gtk-doc
9 , docbook-xsl-nons
10 , docbook_xml_dtd_43
11 , help2man
12 , glib
13 , python3
14 , mesonEmulatorHook
15 , libgudev
16 , bash-completion
17 , libmbim
18 , libqrtr-glib
19 , buildPackages
20 , withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
21 , withMan ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
24 stdenv.mkDerivation rec {
25   pname = "libqmi";
26   version = "1.32.4";
28   outputs = [ "out" "dev" ]
29     ++ lib.optional withIntrospection "devdoc";
31   src = fetchFromGitLab {
32     domain = "gitlab.freedesktop.org";
33     owner = "mobile-broadband";
34     repo = "libqmi";
35     rev = version;
36     hash = "sha256-cczGvoD+2+G6uiAt0Iv1BO4/FqzO9bkqhFsEwOfp7qw=";
37   };
39   nativeBuildInputs = [
40     meson
41     ninja
42     pkg-config
43     python3
44   ] ++ lib.optionals withMan [
45     help2man
46   ] ++ lib.optionals withIntrospection [
47     gobject-introspection
48     gtk-doc
49     docbook-xsl-nons
50     docbook_xml_dtd_43
51   ] ++ lib.optionals (withIntrospection && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
52     mesonEmulatorHook
53   ];
55   buildInputs = [
56     bash-completion
57     libmbim
58   ] ++ lib.optionals withIntrospection [
59     libgudev
60   ];
62   propagatedBuildInputs = [
63     glib
64   ] ++ lib.optionals withIntrospection [
65     libqrtr-glib
66   ];
68   mesonFlags = [
69     "-Dudevdir=${placeholder "out"}/lib/udev"
70     (lib.mesonBool "gtk_doc" withIntrospection)
71     (lib.mesonBool "introspection" withIntrospection)
72     (lib.mesonBool "man" withMan)
73     (lib.mesonBool "qrtr" withIntrospection)
74     (lib.mesonBool "udev" withIntrospection)
75   ];
77   doCheck = true;
79   postPatch = ''
80     patchShebangs \
81       build-aux/qmi-codegen/qmi-codegen
82   '';
84   meta = with lib; {
85     homepage = "https://www.freedesktop.org/wiki/Software/libqmi/";
86     description = "Modem protocol helper library";
87     maintainers = teams.freedesktop.members;
88     platforms = platforms.linux;
89     license = with licenses; [
90       # Library
91       lgpl2Plus
92       # Tools
93       gpl2Plus
94     ];
95     changelog = "https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/blob/${version}/NEWS";
96   };