123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- # Maintainer (arch): Ray Rashif <schiv@archlinux.org>
- # Contributor (arch): Tobias Powalowski <tpowa@archlinux.org>
- # Contributor: André Silva <emulatorman@hyperbola.info>
- # Contributor: Márcio Silva <coadde@hyperbola.info>
- # Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
- # Contributor: grizzlyuser <grizzlyuser@protonmail.com>
- # parabola changes and rationale:
- # - remove non-free/patent-encumbered algorithms and graphics
- pkgbase=opencv
- pkgname=(opencv opencv-samples)
- pkgver=4.5.1
- pkgrel=1
- pkgrel+=.parabola1
- pkgdesc="Free Computer Vision Library, without non-free SIFT and SURF algorithms, Milky icons, and lena images"
- arch=(x86_64)
- arch+=(armv7h i686)
- license=(BSD3)
- url="https://opencv.org/"
- depends=(tbb openexr gst-plugins-base libdc1394 cblas lapack libgphoto2 openjpeg2 ffmpeg)
- depends+=(hicolor-icon-theme)
- makedepends=(cmake python-numpy python-setuptools mesa eigen hdf5 lapacke qt5-base vtk glew ant java-environment)
- optdepends=('opencv-samples: samples'
- 'vtk: for the viz module'
- 'qt5-base: for the HighGUI module and the Python bindings'
- 'hdf5: for the HDF5 module and the Python bindings'
- 'opencl-icd-loader: For coding with OpenCL'
- 'python-numpy: Python bindings'
- 'java-runtime: Java interface')
- mksource=("$pkgbase-$pkgver.tar.gz::https://github.com/opencv/opencv/archive/$pkgver.zip"
- "opencv_contrib-$pkgver.tar.gz::https://github.com/opencv/opencv_contrib/archive/$pkgver.tar.gz"
- libre.patch)
- source=("https://repo.parabola.nu/other/$pkgname-libre/$pkgname-libre-$pkgver.tar.gz")
- mksha256sums=('5fbc26ee09e148a4d494b225d04217f7c913ca1a4d46115b70cca3565d7bbe05'
- '12c3b1ddd0b8c1a7da5b743590a288df0934e5cef243e036ca290c2e45e425f5'
- '15139ab05b9713be6a7ee35b610f42668ea331a67c914b84a5696abd50076c54')
- sha256sums=('ceaf168d694e8044e2c705c47537410d8c9871b5665edd82d9792b1233e575a1')
- mksource() {
- cd "$srcdir/opencv_contrib-$pkgver"
- # remove SIFT and SURF algorithms
- rm -rv modules/xfeatures2d
- cd "$srcdir/$pkgname-$pkgver"
- # remove nonfree Milky icons
- rm -rv modules/highgui/src/files_Qt/Milky
- patch -p1 -i ../libre.patch
- # remove nonfree lena.png and lena.jpg images
- rm -v $(find . -iname '*lena*')
- }
- build() {
- # SSE only available from Pentium 3 onwards (i686 is way older)
- # SSE only available x86 hardware and ARM uses NEON
- local _per_arch_options
- case "$CARCH" in
- i686) _per_arch_options='-DCPU_BASELINE_DISABLE=SSE,SSE2' ;;
- x86_64) _per_arch_options='-DCPU_BASELINE_DISABLE=SSE3 -DCPU_BASELINE_REQUIRE=SSE2' ;;
- *) _per_arch_options='' ;;
- esac
- export JAVA_HOME="/usr/lib/jvm/default"
- # cmake's FindLAPACK doesn't add cblas to LAPACK_LIBRARIES, so we need to specify them manually
- _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
- cmake -B build -S $pkgname-$pkgver \
- -DWITH_OPENCL=ON \
- -DWITH_OPENGL=ON \
- -DWITH_TBB=ON \
- -DWITH_VULKAN=ON \
- -DWITH_QT=ON \
- -DBUILD_WITH_DEBUG_INFO=OFF \
- -DBUILD_TESTS=OFF \
- -DBUILD_PERF_TESTS=OFF \
- -DBUILD_EXAMPLES=ON \
- -DINSTALL_C_EXAMPLES=ON \
- -DINSTALL_PYTHON_EXAMPLES=ON \
- -DCMAKE_INSTALL_PREFIX=/usr \
- ${_per_arch_options} \
- -DOPENCV_EXTRA_MODULES_PATH="$srcdir/opencv_contrib-$pkgver/modules" \
- -DOPENCV_SKIP_PYTHON_LOADER=ON \
- -DOPENCV_PYTHON3_INSTALL_PATH=$_pythonpath \
- -DLAPACK_LIBRARIES="/usr/lib/liblapack.so;/usr/lib/libblas.so;/usr/lib/libcblas.so" \
- -DLAPACK_CBLAS_H="/usr/include/cblas.h" \
- -DLAPACK_LAPACKE_H="/usr/include/lapacke.h" \
- -DOPENCV_GENERATE_PKGCONFIG=ON \
- -DOPENCV_ENABLE_NONFREE=OFF \
- -DOPENCV_JNI_INSTALL_PATH=lib \
- -DOPENCV_GENERATE_SETUPVARS=OFF \
- -DEIGEN_INCLUDE_PATH=/usr/include/eigen3
- cmake --build build
- }
- package_opencv() {
- DESTDIR="$pkgdir" cmake --install build
- # install license file
- install -Dm644 $pkgname-$pkgver/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
- # separate samples package
- mv "$pkgdir"/usr/share/opencv4/samples "$srcdir"
- # Add java symlinks expected by some binary blobs
- ln -sr "$pkgdir"/usr/share/java/{opencv4/opencv-${pkgver//./},opencv}.jar
- ln -sr "$pkgdir"/usr/lib/{libopencv_java${pkgver//./},libopencv_java}.so
- }
- package_opencv-samples() {
- pkgdesc+=" (samples)"
- depends=("opencv=$pkgver")
- unset optdepends
- mkdir -p "$pkgdir"/usr/share/opencv4
- mv samples "$pkgdir"/usr/share/opencv4
- # install license file
- install -Dm644 opencv-$pkgver/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
- }
|