diff options
author | Daniel Bermond | 2023-11-25 23:24:57 -0300 |
---|---|---|
committer | Daniel Bermond | 2023-11-25 23:24:57 -0300 |
commit | 1d83f4a9016c80a892c1a6f1ca58c6e086181b11 (patch) | |
tree | 493c2684aceeb6c068a23bd558b0be6a089fe525 /PKGBUILD | |
parent | a3bda40795c26a5d5cbf5850d616afcd90e30e06 (diff) | |
download | aur-1d83f4a9016c80a892c1a6f1ca58c6e086181b11.tar.gz |
Update to version 2.4.13.7. Various improvements.
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 202 |
1 files changed, 74 insertions, 128 deletions
@@ -1,142 +1,88 @@ -# Maintainer: Ashok Arora <ashok.maillist@gmail.com> +# Maintainer : Daniel Bermond <dbermond@archlinux.org> +# Contributor: Ashok Arora <ashok.maillist@gmail.com> # Contributor: Johannes Janosovits <johannes@walnutempire.de> # Contributor: Joshua Schüler <joshua.schueler at gmail dotcom> # Contributor: Ray Rashif <schiv@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> - -############################################ -# Here you have the option to use some CPU -# extensions to speed up opencv -# Only change this if you know what you -# are doing! -############################################ - -# Use `cat /proc/cpuinfo` to see the extensions your CPU supports - -_FORCE_SSE=OFF # always ON on x64 -_FORCE_SSE2=OFF # always ON on x64 - -# Set to ON on CPUs newer than approx. 2005 -_FORCE_SSE3=OFF - -# Set to ON on CPUs since Intel Core 2 or newer/AMD Bulldozer/AMD Fusion -_FORCE_SSSE3=OFF # also known as SSE4 - -# Set to ON on CPUs since Intel Core 2 Penryn (older than Nehalem or Sandybridge) -# or on AMDs since K10 (approx. 2009) -_FORCE_SSE41=OFF - -# Set to ON on nearly all Intel Core i or AMD since Bulldozer -_FORCE_SSE42=OFF - -# Set to ON on Sandybridge or newer/Bulldozer or newer -_FORCE_AVX=OFF - -# Set to ON on Haswell or newer -_FORCE_AVX2=OFF - -############################################ - - -_pkgbase=opencv -pkgbase=opencv2 -pkgname=('opencv2' 'opencv2-samples') -pkgver=2.4.13.6 -pkgrel=3 -pkgdesc="Open Source Computer Vision Library (Legacy Version)" -arch=('i686' 'x86_64') +pkgname=opencv2 +pkgver=2.4.13.7 +pkgrel=1 +pkgdesc='Open Source Computer Vision Library (version 2.x)' +arch=('x86_64') license=('BSD') -url="http://opencv.org/" -depends=('intel-tbb' 'openexr' 'xine-lib' 'libdc1394' 'gtkglext') -makedepends=('cmake' 'python2-numpy' 'mesa') -optdepends=('opencv-samples' - 'eigen2' - 'libcl: For coding with OpenCL' - 'python2-numpy: Python 2.x interface') -options=('staticlibs') -source=("$pkgver.zip::https://codeload.github.com/opencv/opencv/zip/$pkgver") -sha256sums=('8fbe6005d2266e4a725a5ef7a27365d763ce4ad5a7f38045288a3cad8a18d759') +url='https://opencv.org/' +depends=('glib2' 'gst-plugins-base' 'gst-plugins-base-libs' 'gstreamer' 'gtk2' 'gtkglext' + 'libdc1394' 'libgl' 'libjpeg' 'libpng' 'libtiff' 'zlib') +makedepends=('cmake' 'eigen' 'mesa') +optdepends=('opencl-icd-loader: for coding with OpenCL') +source=("https://github.com/opencv/opencv/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz" + '010-opencv2-remove-prototypes-warnings.patch') +sha256sums=('192d903588ae2cdceab3d7dc5a5636b023132c8369f184ca89ccec0312ae33d0' + '0ac6a30a0708339486941b0c784a3a94f4ab2a5154cd74ae82edd405b4f61823') -_cmakeopts=('-DWITH_CUDA=OFF' # Disable CUDA for now because GCC 6.1.1 and nvcc don't play along yet - '-DWITH_OPENCL=ON' - '-DWITH_OPENGL=ON' - '-DWITH_TBB=ON' - '-DWITH_XINE=ON' - '-DWITH_GSTREAMER=OFF' - '-DBUILD_WITH_DEBUG_INFO=OFF' - '-DUILD_TESTS=OFF' - '-DBUILD_PERF_TESTS=OFF' - '-DBUILD_EXAMPLES=ON' - '-DINSTALL_C_EXAMPLES=ON' - '-DINSTALL_PYTHON_EXAMPLES=ON' - '-DCMAKE_BUILD_TYPE=Release' - '-DCMAKE_INSTALL_PREFIX=/usr' - '-DCMAKE_SKIP_RPATH=ON' - '-DBUILD_JASPER=ON') - -# SSE only available from Pentium 3 onwards (i686 is way older) -[[ "$CARCH" = 'i686' ]] && \ - _cmakeopts+=("-DENABLE_SSE=$_FORCE_SSE" - "-DENABLE_SSE2=$_FORCE_SSE2" - "-DENABLE_SSE3=$_FORCE_SSE3") - -# all x64 CPUs support SSE2 but not SSE3 -[[ "$CARCH" = 'x86_64' ]] && \ - _cmakeopts+=("-DENABLE_SSE3=$_FORCE_SSE3" - "-DENABLE_SSSE4=$_FORCE_SSSE3" #(sic!) - "-DENABLE_SSE41=$_FORCE_SSE41" - "-DENABLE_SSE42=$_FORCE_SSE42" - "-DENABLE_AVX=$_FORCE_AVX" - "-DENABLE_AVX2=$_FORCE_AVX2") prepare() { - cd "$_pkgbase-$pkgver/" - # https://stackoverflow.com/questions/46884682/error-in-building-opencv-with-ffmpeg - sed "1i\#define AVFMT_RAWPICTURE 0x0020" -i modules/highgui/src/cap_ffmpeg_impl.hpp - sed "1i\#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER" -i modules/highgui/src/cap_ffmpeg_impl.hpp - sed "1i\#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)" -i modules/highgui/src/cap_ffmpeg_impl.hpp - sed "/prototypes/d" -i cmake/OpenCVCompilerOptions.cmake + patch -d "opencv-${pkgver}" -Np1 -i "${srcdir}/010-opencv2-remove-prototypes-warnings.patch" } build() { - export CXXFLAGS+=" -std=c++14 -DTBB_SUPPRESS_DEPRECATED_MESSAGES" - cmake -S "$srcdir/$_pkgbase-$pkgver" -B build "${_cmakeopts[@]}" - make -C build + export CXXFLAGS+=' -std=c++14 -ffat-lto-objects' + cmake -S "opencv-${pkgver}" -B build \ + -G 'Unix Makefiles' \ + -DCMAKE_BUILD_TYPE='None' \ + -DCMAKE_INSTALL_PREFIX='/opt/opencv2' \ + -DCMAKE_SKIP_INSTALL_RPATH='YES' \ + -DBUILD_JASPER='ON' \ + -DBUILD_opencv_java='OFF' \ + -DBUILD_opencv_python='OFF' \ + -DBUILD_EXAMPLES='OFF' \ + -DBUILD_PERF_TESTS='OFF' \ + -DBUILD_TESTS='OFF' \ + -DBUILD_WITH_DEBUG_INFO='OFF' \ + -DINSTALL_C_EXAMPLES='OFF' \ + -DINSTALL_PYTHON_EXAMPLES='OFF' \ + -DWITH_CUDA='OFF' \ + -DWITH_FFMPEG:BOOL='OFF' \ + -DWITH_GSTREAMER='ON' \ + -DWITH_OPENCL='ON' \ + -DWITH_OPENGL='ON' \ + -DWITH_TBB='OFF' \ + -DWITH_XINE='OFF' \ + -DENABLE_SSE3='OFF' \ + -DENABLE_SSSE4='OFF' \ + -DENABLE_SSE41='OFF' \ + -DENABLE_SSE42='OFF' \ + -DENABLE_AVX='OFF' \ + -DENABLE_AVX2='OFF' \ + -Wno-dev + cmake --build build } -package_opencv2() { - provides=("opencv=$pkgver") - conflicts=('opencv') - - make -C build DESTDIR="$pkgdir" install - - # install license file - install -Dm644 "$srcdir/$_pkgbase-$pkgver/LICENSE" \ - "$pkgdir/usr/share/licenses/$pkgname/LICENSE" - - cd "$pkgdir/usr/share" - - # separate samples package; also be -R friendly - if [[ -d OpenCV/samples ]]; then - mv OpenCV/samples "$srcdir/$_pkgbase-samples" - mv OpenCV $_pkgbase # otherwise folder naming is inconsistent - elif [[ ! -d OpenCV ]]; then - warning "Directory naming issue; samples package may not be built!" - fi +package() { + DESTDIR="$pkgdir" cmake --install build + install -d -m755 "${pkgdir}/usr"/{bin,include,lib/{cmake,pkgconfig}} + install -D -m644 "opencv-${pkgver}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}" + ln -s ../../../opt/opencv2/lib/pkgconfig/opencv.pc "${pkgdir}/usr/lib/pkgconfig/opencv2.pc" + ln -s ../../../opt/opencv2/lib/pkgconfig/opencv.pc "${pkgdir}/usr/lib/pkgconfig/opencv.pc" + ln -s ../../../opt/opencv2/share/OpenCV "${pkgdir}/usr/lib/cmake/opencv2" + ln -s ../../../opt/opencv2/share/OpenCV "${pkgdir}/usr/lib/cmake/OpenCV" + ln -s ../../opt/opencv2/include/opencv2 "${pkgdir}/usr/include/opencv2" + ln -s ../../opt/opencv2/include/opencv "${pkgdir}/usr/include/opencv" + + local _bin + for _bin in "${pkgdir}/opt/opencv2/bin"/* + do + ln -s "../../opt/opencv2/bin/${_bin##*/}" "${pkgdir}/usr/bin/${_bin##*/}2" + done + + local _lib + for _lib in "${pkgdir}/opt/opencv2/lib"/libopencv*.so."${pkgver%.*}" + do + ln -s "../../opt/opencv2/lib/${_lib##*/}" "${pkgdir}/usr/lib/${_lib##*/}" + done + + while read -r -d '' _lib + do + ln -s "$_lib" "${pkgdir}/usr/lib/${_lib%.*}" + done < <(find -L "${pkgdir}/usr/lib" -type f -name "libopencv*.so.${pkgver%.*}" -print0 | sed -z 's|.*/||') } - -package_opencv2-samples() { - pkgdesc+=" (samples)" - depends=("opencv2=$pkgver") # sample codes change with lib/API - unset optdepends - conflicts=('opencv-samples') - - install -dm755 "$pkgdir/usr/share/$_pkgbase" - cp -r "$srcdir/opencv-samples" "$pkgdir/usr/share/opencv/samples" - - # install license file - install -Dm644 "$srcdir/opencv-$pkgver/LICENSE" \ - "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} - -# vim:set ts=2 sw=2 et: |