123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- # Maintainer (arch): Antonio Rojas <arojas@archlinux.org>
- # Contributor: Ray Rashif <schiv@archlinux.org>
- # Contributor: 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>
- # Contributor: bill-auger <bill-auger@programmer.net>
- # parabola changes and rationale:
- # - remove support for non-free/patent-encumbered algorithms and graphics
- # (SIFT and SURF algorithms, "lena" images, CUDA)
- pkgbase=opencv
- pkgname=(opencv opencv-samples python-opencv opencv-cuda)
- pkgname=( ${pkgname[*]/opencv-cuda/} ) # non-free
- pkgver=4.7.0
- pkgrel=2
- _pkgver_i686=4.5.5
- _pkgrel_i686=4.0
- [[ "${CARCH}" == i686 ]] && eval "pkgver=\$_pkgver_${CARCH}" # our different arches do not
- [[ "${CARCH}" == i686 ]] && eval "pkgrel=\$_pkgrel_${CARCH}" # always roll at the same speed
- pkgrel+=.parabola1
- pkgdesc='Open Source Computer Vision Library'
- pkgdesc="${pkgdesc/Open Source/}"
- arch=(x86_64)
- arch+=(armv7h i686)
- license=(BSD3)
- url='https://opencv.org/'
- depends=(tbb openexr gst-plugins-base libdc1394 cblas lapack libgphoto2 openjpeg2 ffmpeg protobuf)
- makedepends=(cmake python-numpy python-setuptools mesa eigen hdf5 lapacke qt5-base vtk glew ant java-environment pugixml openmpi cudnn fmt)
- makedepends=( ${makedepends[*]/cudnn/} ) # non-free
- makedepends+=( openblas ) # undefined reference to `cblas_{c,d,s,z}gemm'
- # makedepends+=( openblas-lapack ) # undefined reference to `cblas_{c,d,s,z}gemm'
- optdepends=('opencv-samples: samples'
- 'vtk: for the viz module'
- 'glew: for the viz module'
- 'qt5-base: for the HighGUI module'
- 'hdf5: for the HDF5 module'
- 'opencl-icd-loader: For coding with OpenCL'
- 'java-runtime: Java interface')
- source=(https://github.com/opencv/opencv/archive/$pkgver/$pkgname-$pkgver.tar.gz
- https://github.com/opencv/opencv_contrib/archive/$pkgver/opencv_contrib-$pkgver.tar.gz
- vtk9.patch)
- mksource=(${source[*]})
- source=(https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-libre-${pkgver}.tar.gz{,.sig})
- sha256sums=('8df0079cdbe179748a18d44731af62a245a45ebf5085223dc03133954c662973'
- '42df840cf9055e59d0e22c249cfb19f04743e1bdad113d31b1573d3934d62584'
- 'f35a2d4ea0d6212c7798659e59eda2cb0b5bc858360f7ce9c696c77d3029668e')
- mksha256sums=(${sha256sums[*]})
- sha256sums=('6e4b340fd60328e304065bd57d7cc4c41e954d8d4ef3a18b090ef5e898240512'
- SKIP)
- validpgpkeys=('3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40') # bill-auger
- mksource() {
- ## opencv ##
- cd "$srcdir/$pkgname-$pkgver"
- # remove lena.png and lena.jpg images
- rm -v $(find . -iname '*lena*')
- ## opencv_contrib ##
- cd "${srcdir}"/opencv_contrib-${pkgver}
- # remove SIFT and SURF algorithms
- rm -rv modules/xfeatures2d
- # remove CUDA modules
- rm -rv modules/cuda*
- }
- build() {
- # SSE{2,3} is not available for armv7h or i686 (ARM has 'NEON' instead)
- local per_arch_options=''
- case "$CARCH" in
- armv7h|i686) per_arch_options='-DCPU_BASELINE_DISABLE=SSE,SSE2' ;;
- x86_64 ) per_arch_options='-DCPU_BASELINE_DISABLE=SSE3 -DCPU_BASELINE_REQUIRE=SSE2' ;;
- 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
- _opts="-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 \
- -DBUILD_PROTOBUF=OFF \
- -DPROTOBUF_UPDATE_FILES=ON \
- -DINSTALL_C_EXAMPLES=ON \
- -DINSTALL_PYTHON_EXAMPLES=ON \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCPU_BASELINE_DISABLE=SSE3 \
- -DCPU_BASELINE_REQUIRE=SSE2 \
- -DOPENCV_EXTRA_MODULES_PATH=$srcdir/opencv_contrib-$pkgver/modules \
- -DOPENCV_SKIP_PYTHON_LOADER=ON \
- -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=ON \
- -DOPENCV_JNI_INSTALL_PATH=lib \
- -DOPENCV_GENERATE_SETUPVARS=OFF \
- -DEIGEN_INCLUDE_PATH=/usr/include/eigen3"
- _opts="${_opts/-DCPU_BASELINE_*/} ${per_arch_options}" # per-arch options
- _opts="${_opts/-DOPENCV_ENABLE_NONFREE=ON/-DOPENCV_ENABLE_NONFREE=OFF}" # non-free
- _opts+=" -DCMAKE_EXE_LINKER_FLAGS=-lcblas" # undefined reference to `cblas_sgemm'
- cmake -B build -S $pkgname-$pkgver $_opts
- cmake --build build
- # 'build-cuda' recipe deleted (non-free)
- }
- package_opencv() {
- DESTDIR="$pkgdir" cmake --install build
- # install license file
- install -Dm644 $pkgbase-$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
- # Split Python bindings
- rm -r "$pkgdir"/usr/lib/python3*
- }
- package_opencv-samples() {
- pkgdesc+=' (samples)'
- depends=(opencv)
- unset optdepends
- mkdir -p "$pkgdir"/usr/share/opencv4
- mv samples "$pkgdir"/usr/share/opencv4
- # install license file
- install -Dm644 $pkgbase-$pkgver/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
- }
- package_python-opencv() {
- pkgdesc='Python bindings for OpenCV'
- depends=(python-numpy opencv vtk glew qt5-base hdf5 jsoncpp openmpi pugixml fmt)
- unset optdepends
- DESTDIR="$pkgdir" cmake --install build/modules/python3
- # install license file
- install -Dm644 $pkgbase-$pkgver/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
- }
- # package_opencv-cuda() deleted (non-free)
|