diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..bbb59ecf80dd --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,153 @@ +# Maintainer: yhfudev <yhfudev gmail> +# Contributor: Valentin Churavy <v.churavy@gmail.com> +# Contributor: Romain Reignier <rom.reignier@gmail.com> (ARM support) +# Contributor: Fabien Dubosson <fabien.dubosson@gmail.com> +# Contributor: David Manouchehri <david@davidmanouchehri.com> +# Contributor: CHEN Xing <cxcxcxcx@gmail.com> +# Contributor: Martin Imobersteg <martin.imobersteg@gmail.com> +# Contributor: Artyom Smirnov <smirnoffjr@gmail.com> +# Also largely inspired by `opencv` in extra, so including contributors too: +# Contributor: Ray Rashif <schiv@archlinux.org> +# Contributor: Tobias Powalowski <tpowa@archlinux.org> + +pkgname="opencv-git" +pkgver=3.1.0.r1522.g1ae27eb +pkgrel=1 +pkgdesc="Open Source Computer Vision Library compiled with extra modules(opencv_contrib) and CUDA" +url="http://opencv.org/" +license=('BSD') +arch=('i686' 'x86_64' 'armv7h' 'armv6h') +depends=('gstreamer0.10-base' 'openexr' + 'xine-lib' 'libdc1394' 'gtkglext' + 'nvidia-utils' 'hdf5-cpp-fortran' # The following variables are used in this project, but they are set to NOTFOUND : CUDA_CUDA_LIBRARY, HDF5_hdf5_cpp_LIBRARY + 'python' + 'eigen' + 'ceres-solver' # for opencv_contrib's sfm + 'cuda' 'libcl' + ) +depends_x86_64=('intel-tbb') +depends_i686=('intel-tbb') +depends_armv7h=('intel-tbb') +makedepends=('git' 'cmake' 'python2-numpy' 'python-numpy' 'mesa' + 'gcc5' + ) +optdepends=(#'eigen' + #'libcl: For coding with OpenCL' + 'python-numpy: Python 3 interface' + 'python2-numpy: Python 2 interface') +options=('staticlibs') +provides=("${pkgname%-git}") +conflicts=("${pkgname%-git}") +changelog="ChangeLog" +source=("${pkgname%-git}::git+http://github.com/Itseez/opencv.git" + "${pkgname%-git}_contrib::git+https://github.com/opencv/opencv_contrib.git" + "ippicv_linux_20151201.tgz::https://github.com/Itseez/opencv_3rdparty/raw/ippicv/master_20151201/ippicv/ippicv_linux_20151201.tgz" + 'opencv_contrib_sfm_cmake.patch' + 'opencv_gcc6_pch.patch' + 'fsh.patch' + ) +md5sums=('SKIP' + 'SKIP' + '808b791a6eac9ed78d32a7666804320e' + '6497098ac0f9d52e3c988f5413af22c8' + '9c69b76b8f1b781e201c70d21e3d175e' + '752652494b42fd1532f52b789a85947f' + ) + +_cmakeopts=('-D WITH_OPENCL=ON' + '-D WITH_OPENGL=ON' + '-D WITH_TBB=ON' + '-D WITH_XINE=ON' + '-D BUILD_WITH_DEBUG_INFO=OFF' + '-D BUILD_TESTS=OFF' + '-D BUILD_PERF_TESTS=OFF' + '-D BUILD_EXAMPLES=OFF' + '-D INSTALL_C_EXAMPLES=OFF' + '-D INSTALL_PYTHON_EXAMPLES=OFF' + '-D BUILD_opencv_python2=ON', + '-D BUILD_opencv_python3=ON', + '-D CMAKE_BUILD_TYPE=Release' + '-D CMAKE_INSTALL_PREFIX=/usr' + '-D CMAKE_SKIP_RPATH=ON' + '-D BUILD_NEW_PYTHON_SUPPORT=ON' + '-D WITH_NVCUVID=ON' + '-D WITH_CUDA=ON' + '-D ENABLE_FAST_MATH=ON' + '-D CUDA_FAST_MATH=ON' + '-D WITH_CUBLAS=ON' + '-D CMAKE_CXX_FLAGS=-std=c++11' #'-D CMAKE_CXX_FLAGS=-std=c++98'; use c++11 because the module sfm depends on ceres-solver which was compiled with c++11; see https://github.com/opencv/opencv_contrib/issues/500 +# Settings for neural network module' + '-D BUILD_opencv_dnn=ON' + '-D BUILD_LIBPROTOBUF_FROM_SOURCES=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') + +# NEON support only for armv7h +[[ "$CARCH" = 'armv7h' ]] && _cmakeopts+=('-D ENABLE_NEON=ON') + +# intel-tbb not available for armv6h +[[ "$CARCH" = 'armv6h' ]] && _cmakeopts+=('-D WITH_TBB=OFF') + +pkgver() { + cd "${srcdir}/${pkgname%-git}" + git describe --long | sed -r 's/([^-]*-g)/r\1/;s/-/./g' +} + +prepare() { + cd "${srcdir}/${pkgname%-git}" + patch -p1 -i "${srcdir}/opencv_gcc6_pch.patch" + + # hack-fix folder naming inconsistency that they won't fix + # see http://code.opencv.org/issues/2512 + # and https://bugs.archlinux.org/task/32342 + # patch -p1 -i "${srcdir}/fsh.patch" + sed 's/OpenCV\/doc/doc\/opencv/' -i CMakeLists.txt + sed 's/share\/OpenCV/share\/opencv/' -i CMakeLists.txt + sed 's/share\/OpenCV/share\/opencv/' -i cmake/templates/opencv_run_all_tests_unix.sh.in + + mkdir -p "${srcdir}/${pkgname%-git}/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/" + ln -sf "${srcdir}/ippicv_linux_20151201.tgz" "${srcdir}/${pkgname%-git}/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz" + + cd "${srcdir}/${pkgname%-git}_contrib" + # opencv_contrib sfm problem, use the complete FindGflags.cmake from ceres-solver + patch -p1 -i "${srcdir}/opencv_contrib_sfm_cmake.patch" + + #sudo ln -sf /usr/bin/gcc-5 /opt/cuda/bin/gcc + #sudo ln -sf /usr/bin/cpp-5 /opt/cuda/bin/cpp + #sudo ln -sf /usr/bin/g++-5 /opt/cuda/bin/g++ +} + +build() { + cd "${srcdir}/${pkgname%-git}" + + # --expt-relaxed-constexpr to fix the error: + # opencv/modules/core/include/opencv2/core/cuda/vec_math.hpp(205): error: calling a constexpr __host__ function("abs") from a __device__ function("abs") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this. + # current nvcc don't support gcc6, so use gcc5 instead + export CC=$(which gcc-5) + export CXX=$(which g++-5) + cmake ${_cmakeopts[@]} \ + -D CUDA_NVCC_FLAGS='-std=c++11 -Xcompiler -D__CORRECT_ISO_CPP11_MATH_H_PROTO --expt-relaxed-constexpr' \ + -D OPENCV_EXTRA_MODULES_PATH=$srcdir/${pkgname%-git}_contrib/modules \ + . + + make +} + +package() { + cd "${srcdir}/${pkgname%-git}" + + make DESTDIR="${pkgdir}" install + + # install LICENSE file + install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname%-git}/LICENSE" +} + +# vim:set ts=4 sw=4 et: |