diff options
Diffstat (limited to 'libre/opencv/PKGBUILD')
-rw-r--r-- | libre/opencv/PKGBUILD | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/libre/opencv/PKGBUILD b/libre/opencv/PKGBUILD new file mode 100644 index 000000000..d6d7a707b --- /dev/null +++ b/libre/opencv/PKGBUILD @@ -0,0 +1,129 @@ +# $Id$ +# Maintainer (Arch): Ray Rashif <schiv@archlinux.org> +# Contributor (Arch): Tobias Powalowski <tpowa@archlinux.org> +# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe> + +pkgbase=opencv +pkgname=('opencv' 'opencv-samples') +pkgver=2.4.10 +pkgrel=3.parabola1 +pkgdesc="Open Source Computer Vision Library, without nonfree and 3rdparty modules and Milky icons" +arch=('i686' 'x86_64') +license=('BSD') +url="http://opencv.org/" +depends=('intel-tbb' 'openexr' 'xine-lib' 'libdc1394' 'gtkglext') +makedepends=('cmake' 'python2-numpy' 'mesa' 'eigen2') +optdepends=('opencv-samples' + 'eigen2' + 'libcl: For coding with OpenCL' + 'python2-numpy: Python 2.x interface') +mksource=("http://downloads.sourceforge.net/opencvlibrary/$pkgname-$pkgver.zip") +source=("https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-${pkgver}.zip" + 'pkgconfig.patch' + 'fsh.patch' + 'x86_asmfix.patch') +mkmd5sums=('ec63952d3a3dff965d5fdde765926821') +md5sums=('1cf568ec12de8a3f786cd2d851b0f001' + 'c7cea48ed7d4f729ebdb9673bac41bd3' + 'c597598d142dd34d0eb4af7d6e9779d8' + 'b937d3589a62666f17f6dc93e0109717') + +_cmakeopts=('-D WITH_OPENCL=ON' + '-D WITH_OPENGL=ON' + '-D WITH_TBB=ON' + '-D WITH_XINE=ON' + '-D WITH_GSTREAMER=OFF' + '-D BUILD_WITH_DEBUG_INFO=OFF' + '-D BUILD_TESTS=OFF' + '-D BUILD_PERF_TESTS=OFF' + '-D BUILD_EXAMPLES=ON' + '-D INSTALL_C_EXAMPLES=ON' + '-D INSTALL_PYTHON_EXAMPLES=ON' + '-D CMAKE_BUILD_TYPE=Release' + '-D CMAKE_INSTALL_PREFIX=/usr' + '-D CMAKE_SKIP_RPATH=ON') + +# SSE only available from Pentium 3 onwards (i686 is way older) +[[ "$CARCH" = 'i686' ]] && \ + _cmakeopts+=('-D ENABLE_SSE=OFF' + '-D ENABLE_SSE2=OFF' + '-D ENABLE_SSE3=OFF') + +# all x64 CPUs support SSE2 but not SSE3 +[[ "$CARCH" = 'x86_64' ]] && _cmakeopts+=('-D ENABLE_SSE3=OFF') + +mksource() { + cd "$srcdir/$pkgname-$pkgver" + + rm -rv 3rdparty + rm -rv modules/nonfree + rm -rv modules/highgui/src/files_Qt/Milky +} + +prepare() { + cd "$srcdir/$pkgname-$pkgver" + + msg2 "Applying backported fix for x86 ASM breakage" + # see https://github.com/Itseez/opencv/pull/3331 + patch -Np1 -i "$srcdir/x86_asmfix.patch" + + msg2 "Fixing broken pkg-config (downstream)" + # see https://bugs.archlinux.org/task/32430 + # and http://code.opencv.org/issues/1925 + patch -Np1 -i "$srcdir/pkgconfig.patch" + + # TODO: this is mostly upstream frei0r; they hardcode the path + #msg2 "Hack-fixing folder naming inconsistency (downstream)" + # see http://code.opencv.org/issues/2512 + # and https://bugs.archlinux.org/task/32342 + #patch -Np1 -i "$srcdir/fsh.patch" + + # no longer including docs, see https://bugs.archlinux.org/task/34185 + # python2 compatibility for generating (html) docs + #sed -i 's/sphinx-build/sphinx-build2/' cmake/OpenCVDetectPython.cmake +} + +build() { + cd "$srcdir/$pkgname-$pkgver" + + cmake ${_cmakeopts[@]} . + + make +} + +package_opencv() { + options=('staticlibs') + + cd "$srcdir/$pkgname-$pkgver" + + make DESTDIR="$pkgdir" install + + # install license file + install -Dm644 "$srcdir/$pkgname-$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/$pkgname-samples" + mv OpenCV $pkgname # otherwise folder naming is inconsistent + elif [[ ! -d OpenCV ]]; then + warning "Directory naming issue; samples package may not be built!" + fi +} + +package_opencv-samples() { + pkgdesc+=" (samples)" + depends=("opencv=$pkgver") # sample codes change with lib/API + unset optdepends + + mkdir -p "$pkgdir/usr/share/opencv" + 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: |