python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / aravis / default.nix
blobdd7691762567ab2b5c777730d65de6f77d1cff4b
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , meson
5 , ninja
6 , pkg-config
7 , gi-docgen
8 , glib
9 , libxml2
10 , gobject-introspection
12 , enableGstPlugin ? true
13 , enableViewer ? true
14 , gst_all_1
15 , gtk3
16 , wrapGAppsHook
18 , enableUsb ? true
19 , libusb1
21 , enablePacketSocket ? true
22 , enableFastHeartbeat ? false
25 assert enableGstPlugin -> gst_all_1 != null;
26 assert enableViewer -> enableGstPlugin;
27 assert enableViewer -> gtk3 != null;
28 assert enableViewer -> wrapGAppsHook != null;
30 stdenv.mkDerivation rec {
31   pname = "aravis";
32   version = "0.8.22";
34   src = fetchFromGitHub {
35     owner = "AravisProject";
36     repo = pname;
37     rev = version;
38     sha256 = "sha256-S9DmXjywxNr5Rpx605zip76vGKBSrUwyerqXlBm05VI=";
39   };
41   outputs = [ "bin" "dev" "out" "lib" ];
43   nativeBuildInputs = [
44     meson
45     ninja
46     pkg-config
47     gi-docgen
48   ] ++ lib.optional enableViewer wrapGAppsHook;
50   buildInputs =
51     [ glib libxml2 gobject-introspection ]
52     ++ lib.optional enableUsb libusb1
53     ++ lib.optionals (enableViewer || enableGstPlugin) (with gst_all_1; [ gstreamer gst-plugins-base (gst-plugins-good.override { gtkSupport = true; }) gst-plugins-bad ])
54     ++ lib.optionals (enableViewer) [ gtk3 ];
56   mesonFlags = [
57   ] ++ lib.optional enableFastHeartbeat "-Dfast-heartbeat=enabled"
58   ++ lib.optional (!enableGstPlugin) "-Dgst-plugin=disabled"
59   ++ lib.optional (!enableViewer) "-Dviewer=disabled"
60   ++ lib.optional (!enableUsb) "-Dviewer=disabled"
61   ++ lib.optional (!enablePacketSocket) "-Dpacket-socket=disabled";
63   doCheck = true;
65   meta = {
66     description = "Library for video acquisition using GenICam cameras";
67     longDescription = ''
68       Implements the gigabit ethernet and USB3 protocols used by industrial cameras.
69     '';
70     # the documentation is the best working homepage that's not the Github repo
71     homepage = "https://aravisproject.github.io/docs/aravis-0.8";
72     license = lib.licenses.lgpl2;
73     maintainers = with lib.maintainers; [ tpw_rules ];
74     platforms = lib.platforms.unix;
75   };