diff options
Diffstat (limited to 'community/opencv/APKBUILD')
-rw-r--r-- | community/opencv/APKBUILD | 145 |
1 files changed, 117 insertions, 28 deletions
diff --git a/community/opencv/APKBUILD b/community/opencv/APKBUILD index 1a05ee6d351..314cd91fa7f 100644 --- a/community/opencv/APKBUILD +++ b/community/opencv/APKBUILD @@ -1,38 +1,79 @@ # Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de> # Maintainer: Bart Ribbers <bribbers@disroot.org> pkgname=opencv -pkgver=4.5.3 +pkgver=4.9.0 pkgrel=1 -pkgdesc="An open source computer vision and machine learning library" -url="https://opencv.org" -# Other arches blocked by vtk-dev -arch="x86_64 x86 aarch64 ppc64le" +pkgdesc="Open source computer vision and machine learning library" +url="https://opencv.org/" +# s390x blocked by vtk -> netcdf +# riscv64: ftbfs, relocation errors +# ppc64le: ftbfs alpine/aports#15494 +arch="all !s390x !riscv64 !ppc64le" license="BSD-3-Clause" -subpackages="$pkgname-dbg $pkgname-dev" 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 - python3 + 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 @@ -41,13 +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" -# vtk is only provided on x86_64 -case "$CARCH" in - x86_64) - _extra_cmake_flags="-DCPU_BASELINE_DISABLE=SSE3 -DCPU_BASELINE_REQUIRE=SSE2" - ;; -esac - prepare() { default_prepare @@ -67,10 +101,31 @@ prepare() { } build() { - cmake -B build \ - -DCMAKE_BUILD_TYPE=None \ + 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_BUILD_HARDENING=ON \ + -DENABLE_THIN_LTO=$lto \ -DWITH_OPENCL=ON \ -DWITH_OPENGL=ON \ -DWITH_TBB=ON \ @@ -85,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() { @@ -103,17 +162,47 @@ 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() { + pkgdesc="$pkgdesc (python modules)" + depends="py3-numpy" + + amove usr/lib/python3.* +} + +_lib() { + pkgdesc="$pkgdesc ($subpkgname library)" + + amove usr/lib/$subpkgname.so.* } sha512sums=" -efd2214f29b1eb2e1ae55280f9fc2f64af7c2e91154264c43d0d4186dd5b8f81e86942dff612d08cd9eaa834421457fe765760181160168cd4c52839a0739758 opencv-4.5.3.tar.gz -5b48e2aedcf8c64fcfe80fad243c455c1bb9bfd10741c5ba03679ef26b28f61767fec632a9a9828a87a90542488354ebbbe8c65845bf2ae55b15a721c147a30a opencv_contrib-4.5.3.tar.gz +1598ae59849e7805b3cbec5260bb501006f26edff452343b366b9262a0f48a6e09f4b2e760209cb677f2a64a7b22f4e70bc6195c104bcea74cc9fe04031d0292 opencv-4.9.0.tar.gz +ebaee3b88bd7ae246727e65a98d9fbc1d9772a4181a1926f3af742410b78dc87d2386bcd96ac67d7fb1a3020c3717a2cdebdcf9304d6dfd9ea494004791cf043 opencv_contrib-4.9.0.tar.gz " |