nixpkgs/pkgs/development/libraries/aravis/default.nix

91 lines
2.8 KiB
Nix
Raw Normal View History

{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk-doc, intltool
, audit, glib, libusb1, libxml2
2018-08-17 17:11:40 +01:00
, wrapGAppsHook
, gstreamer ? null
, gst-plugins-base ? null
, gst-plugins-good ? null
, gst-plugins-bad ? null
, libnotify ? null
, gnome3 ? null
2019-03-23 04:50:12 +00:00
, gtk3 ? null
2018-08-17 17:11:40 +01:00
, enableUsb ? true
, enablePacketSocket ? true
, enableViewer ? true
, enableGstPlugin ? true
, enableCppTest ? false
, enableFastHeartbeat ? false
, enableAsan ? false
}:
let
gstreamerAtLeastVersion1 =
lib.all
(pkg: pkg != null && lib.versionAtLeast (stdenv.lib.getVersion pkg) "1.0")
2018-08-17 17:11:40 +01:00
[ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ];
in
assert enableGstPlugin -> lib.all (pkg: pkg != null) [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ];
2018-08-17 17:11:40 +01:00
assert enableViewer -> enableGstPlugin;
assert enableViewer -> libnotify != null;
assert enableViewer -> gnome3 != null;
2019-03-23 04:50:12 +00:00
assert enableViewer -> gtk3 != null;
2018-08-17 17:11:40 +01:00
assert enableViewer -> gstreamerAtLeastVersion1;
stdenv.mkDerivation rec {
pname = "aravis";
version = "0.6.4";
2018-08-17 17:11:40 +01:00
src = fetchFromGitHub {
owner = "AravisProject";
repo = pname;
rev= "ARAVIS_${builtins.replaceStrings ["."] ["_"] version}";
sha256 = "18fnliks661kzc3g8v08hcaj18hjid8b180d6s9gwn0zgv4g374w";
2018-08-17 17:11:40 +01:00
};
outputs = [ "bin" "dev" "out" "lib" ];
nativeBuildInputs = [
autoreconfHook
pkg-config
2018-08-17 17:11:40 +01:00
intltool
gtk-doc
] ++ lib.optional enableViewer wrapGAppsHook;
2018-08-17 17:11:40 +01:00
buildInputs =
[ glib libxml2 ]
++ lib.optional enableUsb libusb1
++ lib.optional enablePacketSocket audit
++ lib.optionals (enableViewer || enableGstPlugin) [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]
++ lib.optionals (enableViewer) [ libnotify gtk3 gnome3.adwaita-icon-theme ];
2018-08-17 17:11:40 +01:00
preAutoreconf = ''./autogen.sh'';
configureFlags =
lib.optional enableUsb "--enable-usb"
++ lib.optional enablePacketSocket "--enable-packet-socket"
++ lib.optional enableViewer "--enable-viewer"
++ lib.optional enableGstPlugin
2018-08-17 17:11:40 +01:00
(if gstreamerAtLeastVersion1 then "--enable-gst-plugin" else "--enable-gst-0.10-plugin")
++ lib.optional enableCppTest "--enable-cpp-test"
++ lib.optional enableFastHeartbeat "--enable-fast-heartbeat"
++ lib.optional enableAsan "--enable-asan";
2018-08-17 17:11:40 +01:00
postPatch = ''
ln -s ${gtk-doc}/share/gtk-doc/data/gtk-doc.make .
'';
doCheck = true;
meta = {
description = "Library for video acquisition using GenICam cameras";
longDescription = ''
Implements the gigabit ethernet and USB3 protocols used by industrial cameras.
'';
homepage = "https://aravisproject.github.io/docs/aravis-0.5";
license = lib.licenses.lgpl2;
2018-08-17 17:11:40 +01:00
maintainers = [];
platforms = lib.platforms.unix;
2018-08-17 17:11:40 +01:00
};
}