# Contributor: Marian Buschsieweke # Maintainer: Bart Ribbers pkgname=opencv pkgver=4.7.0 pkgrel=3 pkgdesc="An open source computer vision and machine learning library" url="https://opencv.org/" # s390x blocked by vtk -> netcdf arch="all !s390x" license="BSD-3-Clause" subpackages="$pkgname-dev py3-$pkgname:_py3" depends_dev=" blas-dev eigen-dev ffmpeg-dev freetype-dev glew-dev gst-plugins-base-dev gstreamer-dev harfbuzz-dev hdf5-dev libdc1394-dev libgphoto2-dev libtbb-dev libva-glx-dev mesa-dev openblas-dev openexr-dev openjpeg-dev openjpeg-tools py3-setuptools qt6-qtbase-dev vtk-dev " makedepends=" $depends_dev clang cmake lld samurai python3-dev py3-numpy-dev " source="https://github.com/opencv/opencv/archive/$pkgver/opencv-$pkgver.tar.gz https://github.com/opencv/opencv_contrib/archive/$pkgver/opencv_contrib-$pkgver.tar.gz " # Tests require human interaction # net required to download a data file (face_landmark_model.dat) options="net !check" case "$CARCH" in riscv64) # binutils objcopy fails to copy dbg info from llvm toolchain # and strip also fails options="$options !strip" ;; *) subpackages="$pkgname-dbg $subpackages" ;; esac prepare() { default_prepare cd "$srcdir/opencv_contrib-$pkgver"/modules # Only use modules that we care about mv \ aruco \ face \ tracking \ optflow \ plot \ shape \ superres \ videostab \ ximgproc \ "$builddir"/modules/ } build() { case "$CARCH" in x86_64) local extra_cmake_flags="-DCPU_BASELINE_DISABLE=SSE3 -DCPU_BASELINE_REQUIRE=SSE2" ;; esac case "$CARCH" in riscv64) local lto=OFF ;; *) local lto=ON ;; esac export SETUPTOOLS_USE_DISTUTILS=stdlib # reduce size of debug syms CFLAGS="$CFLAGS -g1" CXXFLAGS="$CXXFLAGS -g1" \ LDFLAGS="$LDFLAGS -fuse-ld=lld" \ CC=clang CXX=clang++ \ cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DENABLE_BUILD_HARDENING=ON \ -DENABLE_THIN_LTO=$lto \ -DWITH_OPENCL=ON \ -DWITH_OPENGL=ON \ -DWITH_TBB=ON \ -DWITH_VULKAN=ON \ -DWITH_QT=ON \ -DWITH_ADE=OFF \ -DWITH_opencv_gapi=OFF \ -DWITH_IPP=OFF \ -DBUILD_WITH_DEBUG_INFO=ON \ -DBUILD_TESTS=OFF \ -DBUILD_PERF_TESTS=OFF \ -DBUILD_EXAMPLES=OFF \ -DINSTALL_C_EXAMPLES=OFF \ -DINSTALL_PYTHON_EXAMPLES=OFF \ -DOPENCV_SKIP_PYTHON_LOADER=ON \ -DOPENCV_GENERATE_PKGCONFIG=ON \ -DOPENCV_ENABLE_NONFREE=OFF \ -DOPENCV_GENERATE_SETUPVARS=OFF \ -DEIGEN_INCLUDE_PATH=/usr/include/eigen3 \ -DCMAKE_SKIP_INSTALL_RPATH=ON \ -DPYTHON_EXECUTABLE=/usr/bin/python3 \ $extra_cmake_flags cmake --build build } check() { cd build CTEST_OUTPUT_ON_FAILURE=TRUE ctest } package() { export SETUPTOOLS_USE_DISTUTILS=stdlib DESTDIR="$pkgdir" cmake --install build } samples() { pkgdesc="OpenCV Samples" depends="$pkgname=$pkgver" mkdir -p "$subpkgdir/usr/share/opencv4" mv "$pkgdir/usr/share/opencv4/samples" "$subpkgdir/usr/share/opencv4" } _py3() { pkgdesc="$pkgdesc (python modules)" depends="py3-numpy" amove usr/lib/python3.* } sha512sums=" f799e1eb4ef1eb81212319cf908d0a64d2d5179c8da86b919b06e96a6870a9f3ed33251223a841b71711349018ea6782c174179fa59958a1573e22d11cc9347d opencv-4.7.0.tar.gz f0d878180655de4255cb72cf358a5949dfcf53a386e74f9a743902ac1bae12b2e812a1fc4ecc56a6afdc6adbffec867883a3245ce0b527614cc76e3710e23230 opencv_contrib-4.7.0.tar.gz "