|
|
|
@ -1,74 +1,64 @@ |
|
|
|
|
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk-doc, intltool |
|
|
|
|
, audit, glib, libusb1, libxml2 |
|
|
|
|
, wrapGAppsHook |
|
|
|
|
, gstreamer |
|
|
|
|
, gst-plugins-base |
|
|
|
|
, gst-plugins-good |
|
|
|
|
, gst-plugins-bad |
|
|
|
|
, libnotify |
|
|
|
|
, gnome |
|
|
|
|
{ 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 |
|
|
|
|
, enableViewer ? true |
|
|
|
|
, enableGstPlugin ? true |
|
|
|
|
, enableCppTest ? false |
|
|
|
|
, enableFastHeartbeat ? false |
|
|
|
|
, enableAsan ? false |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
let |
|
|
|
|
gstreamerAtLeastVersion1 = |
|
|
|
|
lib.all |
|
|
|
|
(pkg: pkg != null && lib.versionAtLeast (lib.getVersion pkg) "1.0") |
|
|
|
|
[ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]; |
|
|
|
|
in |
|
|
|
|
assert enableGstPlugin -> gst_all_1 != null; |
|
|
|
|
assert enableViewer -> enableGstPlugin; |
|
|
|
|
assert enableViewer -> gstreamerAtLeastVersion1; |
|
|
|
|
assert enableViewer -> gtk3 != null; |
|
|
|
|
assert enableViewer -> wrapGAppsHook != null; |
|
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec { |
|
|
|
|
|
|
|
|
|
pname = "aravis"; |
|
|
|
|
version = "0.6.4"; |
|
|
|
|
version = "0.8.21"; |
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "AravisProject"; |
|
|
|
|
repo = pname; |
|
|
|
|
rev= "ARAVIS_${builtins.replaceStrings ["."] ["_"] version}"; |
|
|
|
|
sha256 = "18fnliks661kzc3g8v08hcaj18hjid8b180d6s9gwn0zgv4g374w"; |
|
|
|
|
rev = version; |
|
|
|
|
sha256 = "sha256-z4fuo8tVyHf2Bw73ZfAEpAYmzbr9UIzEWPC5f95wnD8="; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
outputs = [ "bin" "dev" "out" "lib" ]; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ |
|
|
|
|
autoreconfHook |
|
|
|
|
meson |
|
|
|
|
ninja |
|
|
|
|
pkg-config |
|
|
|
|
intltool |
|
|
|
|
gtk-doc |
|
|
|
|
gi-docgen |
|
|
|
|
] ++ lib.optional enableViewer wrapGAppsHook; |
|
|
|
|
|
|
|
|
|
buildInputs = |
|
|
|
|
[ glib libxml2 ] |
|
|
|
|
[ glib libxml2 gobject-introspection ] |
|
|
|
|
++ 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 gnome.adwaita-icon-theme ]; |
|
|
|
|
++ 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 ]; |
|
|
|
|
|
|
|
|
|
preAutoreconf = "./autogen.sh"; |
|
|
|
|
|
|
|
|
|
configureFlags = |
|
|
|
|
lib.optional enableUsb "--enable-usb" |
|
|
|
|
++ lib.optional enablePacketSocket "--enable-packet-socket" |
|
|
|
|
++ lib.optional enableViewer "--enable-viewer" |
|
|
|
|
++ lib.optional enableGstPlugin |
|
|
|
|
(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"; |
|
|
|
|
|
|
|
|
|
postPatch = '' |
|
|
|
|
ln -s ${gtk-doc}/share/gtk-doc/data/gtk-doc.make . |
|
|
|
|
''; |
|
|
|
|
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; |
|
|
|
|
|
|
|
|
@ -77,9 +67,10 @@ in |
|
|
|
|
longDescription = '' |
|
|
|
|
Implements the gigabit ethernet and USB3 protocols used by industrial cameras. |
|
|
|
|
''; |
|
|
|
|
homepage = "https://aravisproject.github.io/docs/aravis-0.5"; |
|
|
|
|
# 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 = []; |
|
|
|
|
maintainers = with lib.maintainers; [ tpw_rules ]; |
|
|
|
|
platforms = lib.platforms.unix; |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|