diff options
Diffstat (limited to 'community/opencv/APKBUILD')
-rw-r--r-- | community/opencv/APKBUILD | 132 |
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 " |