diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/aravis')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/aravis/default.nix | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/aravis/default.nix b/nixpkgs/pkgs/development/libraries/aravis/default.nix new file mode 100644 index 000000000000..a7acff5fa3d5 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/aravis/default.nix @@ -0,0 +1,77 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, gi-docgen +, glib +, libxml2 +, gobject-introspection + +, enableGstPlugin ? true +, enableViewer ? true +, gst_all_1 +, gtk3 +, wrapGAppsHook + +, enableUsb ? true +, libusb1 + +, enablePacketSocket ? true +, enableFastHeartbeat ? false +}: + +assert enableGstPlugin -> gst_all_1 != null; +assert enableViewer -> enableGstPlugin; +assert enableViewer -> gtk3 != null; +assert enableViewer -> wrapGAppsHook != null; + +stdenv.mkDerivation rec { + pname = "aravis"; + version = "0.8.28"; + + src = fetchFromGitHub { + owner = "AravisProject"; + repo = pname; + rev = version; + sha256 = "sha256-EgKZcylg3Nx320BdeEz8PVadwo2pE6a3h0vt7YT4LVA="; + }; + + outputs = [ "bin" "dev" "out" "lib" ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gi-docgen + gobject-introspection + ] ++ lib.optional enableViewer wrapGAppsHook; + + buildInputs = + [ glib libxml2 ] + ++ lib.optional enableUsb libusb1 + ++ lib.optionals (enableViewer || enableGstPlugin) (with gst_all_1; [ gstreamer gst-plugins-base (gst-plugins-good.override { gtkSupport = true; }) gst-plugins-bad ]) + ++ lib.optionals (enableViewer) [ gtk3 ]; + + mesonFlags = [ + ] ++ lib.optional enableFastHeartbeat "-Dfast-heartbeat=enabled" + ++ lib.optional (!enableGstPlugin) "-Dgst-plugin=disabled" + ++ lib.optional (!enableViewer) "-Dviewer=disabled" + ++ lib.optional (!enableUsb) "-Dviewer=disabled" + ++ lib.optional (!enablePacketSocket) "-Dpacket-socket=disabled"; + + doCheck = true; + + meta = { + description = "Library for video acquisition using GenICam cameras"; + longDescription = '' + Implements the gigabit ethernet and USB3 protocols used by industrial cameras. + ''; + # the documentation is the best working homepage that's not the Github repo + homepage = "https://aravisproject.github.io/docs/aravis-0.8"; + license = lib.licenses.lgpl2; + maintainers = with lib.maintainers; [ tpw_rules ]; + platforms = lib.platforms.unix; + }; +} |