mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-06-07 17:34:34 +02:00
207 lines
4.6 KiB
Text
207 lines
4.6 KiB
Text
# Contributor: Marian Buschsieweke <marian.buschsieweke@posteo.net>
|
|
# Maintainer: Meng Zhuo <mengzhuo@iscas.ac.cn>
|
|
pkgname=opencv
|
|
pkgver=4.11.0
|
|
pkgrel=0
|
|
pkgdesc="Open source computer vision and machine learning library"
|
|
url="https://opencv.org/"
|
|
# s390x blocked by vtk -> netcdf
|
|
# ppc64le: ftbfs alpine/aports#15494
|
|
arch="all !s390x !ppc64le"
|
|
license="BSD-3-Clause"
|
|
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
|
|
libva-glx-dev
|
|
mesa-dev
|
|
onetbb-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-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
|
|
"
|
|
# Tests require human interaction
|
|
# net required to download a data file (face_landmark_model.dat)
|
|
options="net !check"
|
|
|
|
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
|
|
|
|
# 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=OFF \
|
|
-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
|
|
|
|
cd modules/python/package
|
|
gpep517 build-wheel \
|
|
--wheel-dir "$builddir"/.dist \
|
|
--output-fd 3 3>&1 >&2
|
|
}
|
|
|
|
check() {
|
|
cd build
|
|
ctest
|
|
}
|
|
|
|
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-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="
|
|
3b6e0da8169449944715de9e66380977791069a1d8288534ec768eaa2fb68533821fd8e06eac925a26656baf42185258b13aa80579e1e9be3ebc18fcea66f24d opencv-4.11.0.tar.gz
|
|
a5ebb6810a3b5e40858b7fd533f9eb7b3d475dfda843a489bc5168e72c5eaad0a7a23629aace1f43e1b62d9c24e5e1923d841059c297728fac464e00759886c2 opencv_contrib-4.11.0.tar.gz
|
|
"
|