tiscamera: 0.13.1 -> 1.0.0
This commit is contained in:
parent
0e3b49e9a6
commit
11af729cd0
5 changed files with 199 additions and 41 deletions
|
@ -0,0 +1,25 @@
|
|||
From 90b540bd135de2587352719b14c385b20aa572be Mon Sep 17 00:00:00 2001
|
||||
From: Raymond Gauthier <jraygauthier@gmail.com>
|
||||
Date: Wed, 15 Jun 2022 16:09:58 -0400
|
||||
Subject: [PATCH] cmake-find-aravis: fix pkg cfg include dirs
|
||||
|
||||
---
|
||||
cmake/modules/FindAravis.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cmake/modules/FindAravis.cmake b/cmake/modules/FindAravis.cmake
|
||||
index 5dab5431..811302b9 100644
|
||||
--- a/cmake/modules/FindAravis.cmake
|
||||
+++ b/cmake/modules/FindAravis.cmake
|
||||
@@ -20,7 +20,7 @@ find_path(aravis_INCLUDE_DIR
|
||||
arv.h
|
||||
PATHS
|
||||
${aravis_PKGCONF_INCLUDE_DIRS}
|
||||
- ${aravis0_6_PKGCONF_INCLUDE_DIRS}
|
||||
+ ${aravis0_8_PKGCONF_INCLUDE_DIRS}
|
||||
/usr/local/include
|
||||
# /usr/local/include/aravis-0.4
|
||||
/usr/local/include/aravis-0.8
|
||||
--
|
||||
2.31.1
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
From 5e7146e176cb1b01b47d16a66763469dccd87f25 Mon Sep 17 00:00:00 2001
|
||||
From: Raymond Gauthier <jraygauthier@gmail.com>
|
||||
Date: Thu, 9 Jun 2022 19:45:30 -0400
|
||||
Subject: [PATCH] tcamconvert&tcamsrc: add missing include/lib dirs
|
||||
|
||||
These were building libraries with dependencies on gstreamer-video
|
||||
and gstreamer-base but weren't adding the proper include and
|
||||
lib directories which resulted in build failure on systems
|
||||
where video and base aren't installed in the same location
|
||||
as gstreamer itself (e.g: nix, nixos).
|
||||
---
|
||||
src/gstreamer-1.0/tcamconvert/CMakeLists.txt | 2 ++
|
||||
src/gstreamer-1.0/tcamsrc/CMakeLists.txt | 11 +++++++++++
|
||||
2 files changed, 13 insertions(+)
|
||||
|
||||
diff --git a/src/gstreamer-1.0/tcamconvert/CMakeLists.txt b/src/gstreamer-1.0/tcamconvert/CMakeLists.txt
|
||||
index 30563c38..066cb5d7 100644
|
||||
--- a/src/gstreamer-1.0/tcamconvert/CMakeLists.txt
|
||||
+++ b/src/gstreamer-1.0/tcamconvert/CMakeLists.txt
|
||||
@@ -28,6 +28,8 @@ add_library(tcamconvert SHARED
|
||||
target_include_directories(tcamconvert
|
||||
PRIVATE
|
||||
${GSTREAMER_INCLUDE_DIRS}
|
||||
+ ${GSTREAMER_BASE_INCLUDE_DIRS}
|
||||
+ ${GSTREAMER_VIDEO_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
set_project_warnings(tcamconvert)
|
||||
diff --git a/src/gstreamer-1.0/tcamsrc/CMakeLists.txt b/src/gstreamer-1.0/tcamsrc/CMakeLists.txt
|
||||
index 3bc7ed97..ed5be37f 100644
|
||||
--- a/src/gstreamer-1.0/tcamsrc/CMakeLists.txt
|
||||
+++ b/src/gstreamer-1.0/tcamsrc/CMakeLists.txt
|
||||
@@ -21,12 +21,15 @@ add_library(gsttcamstatistics SHARED
|
||||
target_include_directories(gsttcamstatistics
|
||||
PRIVATE
|
||||
${GSTREAMER_INCLUDE_DIRS}
|
||||
+ ${GSTREAMER_BASE_INCLUDE_DIRS}
|
||||
+ ${GSTREAMER_VIDEO_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_link_libraries( gsttcamstatistics
|
||||
PRIVATE
|
||||
${GSTREAMER_LIBRARIES}
|
||||
${GSTREAMER_BASE_LIBRARIES}
|
||||
+ ${GSTREAMER_VIDEO_LIBRARIES}
|
||||
)
|
||||
|
||||
|
||||
@@ -53,10 +56,18 @@ add_library(gsttcamsrc SHARED
|
||||
tcambind.cpp
|
||||
)
|
||||
|
||||
+ target_include_directories(gsttcamsrc
|
||||
+ PRIVATE
|
||||
+ ${GSTREAMER_INCLUDE_DIRS}
|
||||
+ ${GSTREAMER_BASE_INCLUDE_DIRS}
|
||||
+ ${GSTREAMER_VIDEO_INCLUDE_DIRS}
|
||||
+ )
|
||||
+
|
||||
target_link_libraries( gsttcamsrc
|
||||
PRIVATE
|
||||
${GSTREAMER_LIBRARIES}
|
||||
${GSTREAMER_BASE_LIBRARIES}
|
||||
+ ${GSTREAMER_VIDEO_LIBRARIES}
|
||||
|
||||
tcamgstbase
|
||||
tcam::gst-helper
|
||||
--
|
||||
2.31.1
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
From fdbc0b74812b9afd663226715375b5688e5408b5 Mon Sep 17 00:00:00 2001
|
||||
From: Raymond Gauthier <jraygauthier@gmail.com>
|
||||
Date: Thu, 9 Jun 2022 20:23:02 -0400
|
||||
Subject: [PATCH] udev/rules: fix install location
|
||||
|
||||
---
|
||||
CMakeInstall.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeInstall.cmake b/CMakeInstall.cmake
|
||||
index 4773091f..962c9b09 100644
|
||||
--- a/CMakeInstall.cmake
|
||||
+++ b/CMakeInstall.cmake
|
||||
@@ -92,7 +92,7 @@ else()
|
||||
|
||||
else()
|
||||
|
||||
- set(TCAM_INSTALL_UDEV "${CMAKE_INSTALL_PREFIX}/udev/rules.d" CACHE PATH "udev rules installation path" FORCE)
|
||||
+ set(TCAM_INSTALL_UDEV "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d" CACHE PATH "udev rules installation path" FORCE)
|
||||
set(TCAM_INSTALL_SYSTEMD "${CMAKE_INSTALL_PREFIX}/lib/systemd/system/" CACHE PATH "systemd unit installation path" FORCE)
|
||||
|
||||
set(TCAM_INSTALL_PKGCONFIG "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" CACHE PATH "pkgconfig installation path" FORCE)
|
||||
--
|
||||
2.31.1
|
||||
|
|
@ -3,82 +3,111 @@
|
|||
, fetchFromGitHub
|
||||
, cmake
|
||||
, pkg-config
|
||||
, pcre
|
||||
, tinyxml
|
||||
, runtimeShell
|
||||
, catch2
|
||||
, elfutils
|
||||
, libselinux
|
||||
, libsepol
|
||||
, libunwind
|
||||
, libusb1
|
||||
, libuuid
|
||||
, libzip
|
||||
, orc
|
||||
, pcre
|
||||
, zstd
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, gst_all_1
|
||||
, libwebcam
|
||||
, libunwind
|
||||
, elfutils
|
||||
, orc
|
||||
, python3Packages
|
||||
, libuuid
|
||||
, wrapGAppsHook
|
||||
, catch2
|
||||
, withDoc ? true
|
||||
, sphinx
|
||||
, graphviz
|
||||
, withAravis ? true
|
||||
, aravis
|
||||
, meson
|
||||
, withAravisUsbVision ? withAravis
|
||||
, withGui ? true
|
||||
, qt5
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tiscamera";
|
||||
version = "0.13.1";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TheImagingSource";
|
||||
repo = pname;
|
||||
rev = "v-${pname}-${version}";
|
||||
sha256 = "0hpy9yhc4mn6w8gvzwif703smmcys0j2jqbz2xfghqxcyb0ykplj";
|
||||
sha256 = "0msz33wvqrji11kszdswcvljqnjflmjpk0aqzmsv6i855y8xn6cd";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch
|
||||
./0001-udev-rules-fix-install-location.patch
|
||||
./0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
cp ${catch2}/include/catch2/catch.hpp external/catch/catch.hpp
|
||||
|
||||
substituteInPlace ./data/udev/80-theimagingsource-cameras.rules.in \
|
||||
--replace "/bin/sh" "${runtimeShell}/bin/sh" \
|
||||
--replace "typically /usr/bin/" "" \
|
||||
--replace "typically /usr/share/theimagingsource/tiscamera/uvc-extension/" ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
python3Packages.wrapPython
|
||||
wrapGAppsHook
|
||||
] ++ lib.optionals withDoc [
|
||||
sphinx
|
||||
graphviz
|
||||
] ++ lib.optionals withAravis [
|
||||
meson
|
||||
] ++ lib.optionals withGui [
|
||||
qt5.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
pcre
|
||||
tinyxml
|
||||
elfutils
|
||||
libselinux
|
||||
libsepol
|
||||
libunwind
|
||||
libusb1
|
||||
libuuid
|
||||
libzip
|
||||
orc
|
||||
pcre
|
||||
zstd
|
||||
glib
|
||||
gobject-introspection
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
libwebcam
|
||||
libunwind
|
||||
elfutils
|
||||
orc
|
||||
libuuid
|
||||
python3Packages.python
|
||||
python3Packages.pyqt5
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gst-plugins-bad
|
||||
gst_all_1.gst-plugins-ugly
|
||||
] ++ lib.optionals withAravis [
|
||||
aravis
|
||||
] ++ lib.optionals withGui [
|
||||
qt5.qtbase
|
||||
];
|
||||
|
||||
pythonPath = with python3Packages; [ pyqt5 pygobject3 ];
|
||||
|
||||
propagatedBuildInputs = pythonPath;
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_ARAVIS=OFF" # For GigE support. Won't need it as our camera is usb.
|
||||
"-DBUILD_GST_1_0=ON"
|
||||
"-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"
|
||||
"-DTCAM_BUILD_GST_1_0=ON"
|
||||
"-DTCAM_BUILD_TOOLS=ON"
|
||||
"-DTCAM_BUILD_V4L2=ON"
|
||||
"-DTCAM_BUILD_LIBUSB=ON"
|
||||
"-DTCAM_BUILD_TESTS=ON"
|
||||
"-DTCAM_BUILD_ARAVIS=${if withAravis then "ON" else "OFF"}"
|
||||
"-DTCAM_BUILD_DOCUMENTATION=${if withDoc then "ON" else "OFF"}"
|
||||
"-DTCAM_BUILD_WITH_GUI=${if withGui then "ON" else "OFF"}"
|
||||
"-DTCAM_DOWNLOAD_MESON=OFF"
|
||||
"-DTCAM_INTERNAL_ARAVIS=OFF"
|
||||
"-DTCAM_ARAVIS_USB_VISION=${if withAravis && withAravisUsbVision then "ON" else "OFF"}"
|
||||
"-DTCAM_INSTALL_FORCE_PREFIX=ON"
|
||||
# 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.
|
||||
|
@ -90,8 +119,17 @@ stdenv.mkDerivation rec {
|
|||
# gstreamer tests requires, besides gst-plugins-bad, plugins installed by this expression.
|
||||
checkPhase = "ctest --force-new-ctest-process -E gstreamer";
|
||||
|
||||
postFixup = ''
|
||||
wrapPythonPrograms "$out $pythonPath"
|
||||
# wrapGAppsHook: make sure we add ourselves to the introspection
|
||||
# and gstreamer paths.
|
||||
GI_TYPELIB_PATH = "${placeholder "out"}/lib/girepository-1.0";
|
||||
GST_PLUGIN_SYSTEM_PATH_1_0 = "${placeholder "out"}/lib/gstreamer-1.0";
|
||||
|
||||
QT_PLUGIN_PATH = lib.optionalString withGui "${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}";
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=("''${qtWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -20962,7 +20962,7 @@ with pkgs;
|
|||
|
||||
tinyxml-2 = callPackage ../development/libraries/tinyxml-2 { };
|
||||
|
||||
tiscamera = callPackage ../os-specific/linux/tiscamera { stdenv = gcc10StdenvCompat; };
|
||||
tiscamera = callPackage ../os-specific/linux/tiscamera { };
|
||||
|
||||
tivodecode = callPackage ../applications/video/tivodecode { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue