1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-23 03:05:48 +03:00
aports/community/opencv/APKBUILD
2023-02-27 23:46:01 +01:00

159 lines
3.4 KiB
Text

# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=opencv
pkgver=4.7.0
pkgrel=3
pkgdesc="An open source computer vision and machine learning library"
url="https://opencv.org/"
# s390x blocked by vtk -> netcdf
arch="all !s390x"
license="BSD-3-Clause"
subpackages="$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
libdc1394-dev
libgphoto2-dev
libtbb-dev
libva-glx-dev
mesa-dev
openblas-dev
openexr-dev
openjpeg-dev
openjpeg-tools
py3-setuptools
qt6-qtbase-dev
vtk-dev
"
makedepends="
$depends_dev
clang
cmake
lld
samurai
python3-dev
py3-numpy-dev
"
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
"
# Tests require human interaction
# net required to download a data file (face_landmark_model.dat)
options="net !check"
case "$CARCH" in
riscv64)
# binutils objcopy fails to copy dbg info from llvm toolchain
# and strip also fails
options="$options !strip"
;;
*)
subpackages="$pkgname-dbg $subpackages"
;;
esac
prepare() {
default_prepare
cd "$srcdir/opencv_contrib-$pkgver"/modules
# Only use modules that we care about
mv \
aruco \
face \
tracking \
optflow \
plot \
shape \
superres \
videostab \
ximgproc \
"$builddir"/modules/
}
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
export SETUPTOOLS_USE_DISTUTILS=stdlib
# 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 \
-DWITH_VULKAN=ON \
-DWITH_QT=ON \
-DWITH_ADE=OFF \
-DWITH_opencv_gapi=OFF \
-DWITH_IPP=OFF \
-DBUILD_WITH_DEBUG_INFO=ON \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_EXAMPLES=OFF \
-DINSTALL_C_EXAMPLES=OFF \
-DINSTALL_PYTHON_EXAMPLES=OFF \
-DOPENCV_SKIP_PYTHON_LOADER=ON \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DOPENCV_ENABLE_NONFREE=OFF \
-DOPENCV_GENERATE_SETUPVARS=OFF \
-DEIGEN_INCLUDE_PATH=/usr/include/eigen3 \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
$extra_cmake_flags
cmake --build build
}
check() {
cd build
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
export SETUPTOOLS_USE_DISTUTILS=stdlib
DESTDIR="$pkgdir" cmake --install build
}
samples() {
pkgdesc="OpenCV Samples"
depends="$pkgname=$pkgver"
mkdir -p "$subpkgdir/usr/share/opencv4"
mv "$pkgdir/usr/share/opencv4/samples" "$subpkgdir/usr/share/opencv4"
}
_py3() {
pkgdesc="$pkgdesc (python modules)"
depends="py3-numpy"
amove usr/lib/python3.*
}
sha512sums="
f799e1eb4ef1eb81212319cf908d0a64d2d5179c8da86b919b06e96a6870a9f3ed33251223a841b71711349018ea6782c174179fa59958a1573e22d11cc9347d opencv-4.7.0.tar.gz
f0d878180655de4255cb72cf358a5949dfcf53a386e74f9a743902ac1bae12b2e812a1fc4ecc56a6afdc6adbffec867883a3245ce0b527614cc76e3710e23230 opencv_contrib-4.7.0.tar.gz
"