aboutsummaryrefslogtreecommitdiffstats
path: root/community/opencv/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/opencv/APKBUILD')
-rw-r--r--community/opencv/APKBUILD132
1 files changed, 104 insertions, 28 deletions
diff --git a/community/opencv/APKBUILD b/community/opencv/APKBUILD
index 1a7aee4082f..314cd91fa7f 100644
--- a/community/opencv/APKBUILD
+++ b/community/opencv/APKBUILD
@@ -1,41 +1,79 @@
# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=opencv
-pkgver=4.6.0
-pkgrel=0
-pkgdesc="An open source computer vision and machine learning library"
+pkgver=4.9.0
+pkgrel=1
+pkgdesc="Open source computer vision and machine learning library"
url="https://opencv.org/"
# s390x blocked by vtk -> netcdf
-# ppc64le: ftbfs alpine/aports#13329
-arch="all !s390x !ppc64le"
+# riscv64: ftbfs, relocation errors
+# ppc64le: ftbfs alpine/aports#15494
+arch="all !s390x !riscv64 !ppc64le"
license="BSD-3-Clause"
-subpackages="$pkgname-dbg $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
- lapack-dev
libdc1394-dev
libgphoto2-dev
- libtbb-dev
+ libva-glx-dev
mesa-dev
+ onetbb-dev
+ openblas-dev
openexr-dev
openjpeg-dev
openjpeg-tools
py3-setuptools
- qt5-qtbase-dev
+ qt6-qtbase-dev
vtk-dev
"
-makedepends="$depends_dev
+makedepends="
+ $depends_dev
+ clang
cmake
+ lld
samurai
python3-dev
+ py3-gpep517
py3-numpy-dev
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="
+ $pkgname-dbg
+ $pkgname-dev
+ $pkgname-doc
+ py3-$pkgname-pyc
+ py3-$pkgname:_py3
+ libopencv_aruco:_lib
+ libopencv_calib3d:_lib
+ libopencv_core:_lib
+ libopencv_dnn:_lib
+ libopencv_face:_lib
+ libopencv_features2d:_lib
+ libopencv_flann:_lib
+ libopencv_highgui:_lib
+ libopencv_imgcodecs:_lib
+ libopencv_imgproc:_lib
+ libopencv_ml:_lib
+ libopencv_objdetect:_lib
+ libopencv_optflow:_lib
+ libopencv_photo:_lib
+ libopencv_plot:_lib
+ libopencv_shape:_lib
+ libopencv_stitching:_lib
+ libopencv_superres:_lib
+ libopencv_tracking:_lib
+ libopencv_video:_lib
+ libopencv_videoio:_lib
+ libopencv_videostab:_lib
+ libopencv_ximgproc:_lib
"
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
@@ -44,14 +82,6 @@ source="https://github.com/opencv/opencv/archive/$pkgver/opencv-$pkgver.tar.gz
# net required to download a data file (face_landmark_model.dat)
options="net !check"
-case "$CARCH" in
- x86_64)
- _extra_cmake_flags="-DENABLE_BUILD_HARDENING=ON -DCPU_BASELINE_DISABLE=SSE3 -DCPU_BASELINE_REQUIRE=SSE2"
- ;;
- *)
- _extra_cmake_flags="-DENABLE_BUILD_HARDENING=ON"
-esac
-
prepare() {
default_prepare
@@ -71,12 +101,31 @@ prepare() {
}
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
+
+ # 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_LTO=ON \
- -DENABLE_PGO=ON \
+ -DENABLE_BUILD_HARDENING=ON \
+ -DENABLE_THIN_LTO=$lto \
-DWITH_OPENCL=ON \
-DWITH_OPENGL=ON \
-DWITH_TBB=ON \
@@ -91,16 +140,20 @@ build() {
-DBUILD_EXAMPLES=OFF \
-DINSTALL_C_EXAMPLES=OFF \
-DINSTALL_PYTHON_EXAMPLES=OFF \
- -DOPENCV_SKIP_PYTHON_LOADER=ON \
+ -DOPENCV_SKIP_PYTHON_LOADER=OFF \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DOPENCV_ENABLE_NONFREE=OFF \
-DOPENCV_GENERATE_SETUPVARS=OFF \
-DEIGEN_INCLUDE_PATH=/usr/include/eigen3 \
- -DLAPACK_LIBRARIES="/usr/lib/liblapack.so;/usr/lib/libblas.so;/usr/lib/libcblas.so" \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
- $_extra_cmake_flags
+ $extra_cmake_flags
cmake --build build
+
+ cd modules/python/package
+ gpep517 build-wheel \
+ --wheel-dir "$builddir"/.dist \
+ --output-fd 3 3>&1 >&2
}
check() {
@@ -109,14 +162,31 @@ check() {
}
package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
DESTDIR="$pkgdir" cmake --install build
+ python3 -m compileall -fq "$pkgdir"/usr/lib/python*
+
+ # opencv's python metainfo names it "opencv", as expected.
+ # however, people usually don't use this, they use
+ # https://github.com/opencv/opencv-python
+ # which is installed with "pip install opencv-python", is
+ # exactly the same thing, and is named differently.
+ # so, to be satisfied with a system dependency, it has to follow
+ # that same name.
+ # we can trick pip into thinking both are installed by just copying the
+ # dist-info and changing the name.
+ cd "$pkgdir"/usr/lib/python*/site-packages
+ cp -r opencv-*.dist-info opencv-python-$pkgver.dist-info
+ sed -i \
+ -e "s|Name: opencv|Name: opencv-python|" \
+ opencv-python-$pkgver.dist-info/METADATA
}
samples() {
pkgdesc="OpenCV Samples"
- depends="$pkgname=$pkgver"
- mkdir -p "$subpkgdir/usr/share/opencv4"
- mv "$pkgdir/usr/share/opencv4/samples" "$subpkgdir/usr/share/opencv4"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ amove usr/share/opencv4/samples
}
_py3() {
@@ -126,7 +196,13 @@ _py3() {
amove usr/lib/python3.*
}
+_lib() {
+ pkgdesc="$pkgdesc ($subpkgname library)"
+
+ amove usr/lib/$subpkgname.so.*
+}
+
sha512sums="
-93d7807794682990b6a1d1de1851986ae3c5d1afe6605f3f8cace03ba5e3390bee2568bc0f335af34d3fc974df64cbce0ce685261ec2abd693d259b97b15bc46 opencv-4.6.0.tar.gz
-2e9cc9632774babf59cd186cd7b7edbd35a816bdda2acb51339c514a33fc6d8c3f1687eb3b0f6827304e3fcb0f9f3e81d47e8ab08239175750ac1240cc99dc5d opencv_contrib-4.6.0.tar.gz
+1598ae59849e7805b3cbec5260bb501006f26edff452343b366b9262a0f48a6e09f4b2e760209cb677f2a64a7b22f4e70bc6195c104bcea74cc9fe04031d0292 opencv-4.9.0.tar.gz
+ebaee3b88bd7ae246727e65a98d9fbc1d9772a4181a1926f3af742410b78dc87d2386bcd96ac67d7fb1a3020c3717a2cdebdcf9304d6dfd9ea494004791cf043 opencv_contrib-4.9.0.tar.gz
"