diff options
Diffstat (limited to 'pkgs/os-specific/linux/tiscamera/default.nix')
-rw-r--r-- | pkgs/os-specific/linux/tiscamera/default.nix | 67 |
1 files changed, 31 insertions, 36 deletions
diff --git a/pkgs/os-specific/linux/tiscamera/default.nix b/pkgs/os-specific/linux/tiscamera/default.nix index fb2773b4d3a..38bc7c3eaff 100644 --- a/pkgs/os-specific/linux/tiscamera/default.nix +++ b/pkgs/os-specific/linux/tiscamera/default.nix @@ -2,7 +2,7 @@ , stdenv , fetchFromGitHub , cmake -, pkgconfig +, pkg-config , pcre , tinyxml , libusb1 @@ -12,27 +12,29 @@ , gst_all_1 , libwebcam , libunwind -, gstreamer , elfutils , orc -, python3 +, python3Packages , libuuid +, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "tiscamera"; - version = "0.11.1"; + version = "0.13.1"; src = fetchFromGitHub { owner = "TheImagingSource"; repo = pname; rev = "v-${pname}-${version}"; - sha256 = "07vp6khgl6qd3a4519dmx1s5bfw7pld793p50pjn29fqh91fm93g"; + sha256 = "0hpy9yhc4mn6w8gvzwif703smmcys0j2jqbz2xfghqxcyb0ykplj"; }; nativeBuildInputs = [ cmake - pkgconfig + pkg-config + python3Packages.wrapPython + wrapGAppsHook ]; buildInputs = [ @@ -46,13 +48,16 @@ stdenv.mkDerivation rec { gst_all_1.gst-plugins-base libwebcam libunwind - gstreamer elfutils orc - python3 libuuid + python3Packages.python + python3Packages.pyqt5 ]; + pythonPath = with python3Packages; [ pyqt5 pygobject3 ]; + + propagatedBuildInputs = pythonPath; cmakeFlags = [ "-DBUILD_ARAVIS=OFF" # For GigE support. Won't need it as our camera is usb. @@ -60,38 +65,28 @@ stdenv.mkDerivation rec { "-DBUILD_TOOLS=ON" "-DBUILD_V4L2=ON" "-DBUILD_LIBUSB=ON" + "-DBUILD_TESTS=ON" + "-DTCAM_INSTALL_UDEV=${placeholder "out"}/lib/udev/rules.d" + "-DTCAM_INSTALL_UVCDYNCTRL=${placeholder "out"}/share/uvcdynctrl/data/199e" + "-DTCAM_INSTALL_GST_1_0=${placeholder "out"}/lib/gstreamer-1.0" + "-DTCAM_INSTALL_GIR=${placeholder "out"}/share/gir-1.0" + "-DTCAM_INSTALL_TYPELIB=${placeholder "out"}/lib/girepository-1.0" + "-DTCAM_INSTALL_SYSTEMD=${placeholder "out"}/etc/systemd/system" + "-DTCAM_INSTALL_PYTHON3_MODULES=${placeholder "out"}/lib/${python3Packages.python.libPrefix}/site-packages" + "-DGSTREAMER_1.0_INCLUDEDIR=${placeholder "out"}/include/gstreamer-1.0" + # There are gobject introspection commands launched as part of the build. Those have a runtime + # dependency on `libtcam` (which itself is built as part of this build). In order to allow + # that, we set the dynamic linker's path to point on the build time location of the library. + "-DCMAKE_SKIP_BUILD_RPATH=OFF" ]; - postPatch = '' - substituteInPlace ./data/udev/80-theimagingsource-cameras.rules.in \ - --replace "/usr/bin/uvcdynctrl" "${libwebcam}/bin/uvcdynctrl" \ - --replace "/path/to/tiscamera/uvc-extensions" "$out/share/uvcdynctrl/data/199e" - - substituteInPlace ./src/BackendLoader.cpp \ - --replace '"libtcam-v4l2.so"' "\"$out/lib/tcam-0/libtcam-v4l2.so\"" \ - --replace '"libtcam-aravis.so"' "\"$out/lib/tcam-0/libtcam-aravis.so\"" \ - --replace '"libtcam-libusb.so"' "\"$out/lib/tcam-0/libtcam-libusb.so\"" - ''; - - preConfigure = '' - cmakeFlagsArray=( - $cmakeFlagsArray - "-DCMAKE_INSTALL_PREFIX=$out" - "-DTCAM_INSTALL_UDEV=$out/lib/udev/rules.d" - "-DTCAM_INSTALL_UVCDYNCTRL=$out/share/uvcdynctrl/data/199e" - "-DTCAM_INSTALL_GST_1_0=$out/lib/gstreamer-1.0" - "-DTCAM_INSTALL_GIR=$out/share/gir-1.0" - "-DTCAM_INSTALL_TYPELIB=$out/lib/girepository-1.0" - "-DTCAM_INSTALL_SYSTEMD=$out/etc/systemd/system" - ) - ''; + doCheck = true; + # gstreamer tests requires, besides gst-plugins-bad, plugins installed by this expression. + checkPhase = "ctest --force-new-ctest-process -E gstreamer"; - # There are gobject introspection commands launched as part of the build. Those have a runtime - # dependency on `libtcam` (which itself is built as part of this build). In order to allow - # that, we set the dynamic linker's path to point on the build time location of the library. - preBuild = '' - export LD_LIBRARY_PATH=$PWD/src''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH + postFixup = '' + wrapPythonPrograms "$out $pythonPath" ''; meta = with lib; { |