From 5a8ecbdb39d3e12756fdd40ed4164478297ddc6e Mon Sep 17 00:00:00 2001 From: Sven-Hendrik Haase Date: Thu, 24 Nov 2022 00:04:58 +0000 Subject: [PATCH] Move alice-vision from AUR --- PKGBUILD | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 PKGBUILD diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..a4b27de80587 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,108 @@ +# Maintainer: Sven-Hendrik Haase +# Contributor: bartus +pkgname=alice-vision +pkgver=2.4.0 +pkgrel=6 +pkgdesc="Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms" +arch=('x86_64') +url="https://alicevision.github.io/" +options=('!lto') +license=('MPL2' 'MIT') +depends=('boost-libs' 'openimageio' 'flann' 'geogram' 'coin-or-clp' 'ceres-solver' 'cctag' + 'alembic' 'cuda' 'opengv' 'opencv' 'popsift' 'uncertainty-framework') +makedepends=('boost' 'ninja' 'eigen' 'freetype2' 'coin-or-coinutils' 'coin-or-lemon' + 'git' 'cmake' 'doxygen' 'python-sphinx') +source=("git+https://github.com/alicevision/AliceVision#tag=v${pkgver}" + "MeshSDFilter::git+https://github.com/alicevision/MeshSDFilter.git#branch=av_develop" + "nanoflann::git+https://github.com/alicevision/nanoflann.git" + "cmake_cxx_std_14.patch" + "openexr3.patch" + "iomanip.patch::https://github.com/alicevision/AliceVision/commit/711eda620449c080b642fc7cb6118758535ab614.patch" + "isnormal.patch::https://github.com/alicevision/AliceVision/commit/22fd9d4ba3f8b5344261cedfd9bc3cd4cb58eece.patch" +) +sha256sums=('SKIP' + 'SKIP' + 'SKIP' + 'caf2bf06bd7c6a2387f01f312d94b649ef3e4363b18fcdf95986cd71a0d6c275' + 'de9def936b143b6a95d8afc93e4673e8f8b0e434785b65c557353549efd95c1b' + '8403ad7fc41c86dc771f0b1c986d22831ed7c4fee8520f8aa96171f20387bc2d' + '29440da035b36e3b0e4b94645551ae1bb6041c31b337136894a158217946135f') + +prepare() { + cd AliceVision + + git submodule init + git config submodule."src/dependencies/MeshSDFilter".url "${srcdir}/MeshSDFilter" + git config submodule."src/dependencies/nanoflann".url "${srcdir}/nanoflann" + git -c protocol.file.allow=always submodule update + + patch -Np1 -i"${srcdir}"/cmake_cxx_std_14.patch + + # fix FindOpenEXR.cmake against openexr:3 + patch -Np1 -i"${srcdir}"/openexr3.patch + + # fix header relocation against openexr:3 + grep -lR "#include.*OpenEXR/half.h"|xargs sed -i 's|OpenEXR/half|Imath/half|' + + # fix gcc:11 headers regression + grep -lR "std::numeric_limits"|xargs sed -i '1 i\#include ' + + # fix doc build + sed -i '/^ *install.*doc/s/doc/htmlDoc/' src/CMakeLists.txt + + # fix CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON preserve target name capitalisation + sed 's/OPENEXR_FOUND/OpenEXR_FOUND/g' -i src/CMakeLists.txt + + # fix openimageio:2 target library + sed 's/${OPENIMAGEIO_LIBRARIES};dl/OpenImageIO::OpenImageIO/g' -i src/CMakeLists.txt + + # fix [io]fstream(path) initializer + sed '1 i#include ' -i $(grep -Rl std::[io]fstream src) + + # fix missing header (setw,setfill,etc.) + git apply -v "${srcdir}"/iomanip.patch + + # fix missing isnormal() from std namespace + git apply -v "${srcdir}"/isnormal.patch +} + +build() { + cd AliceVision + + cmake \ + -Bbuild \ + -GNinja \ + -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCOINUTILS_INCLUDE_DIR_HINTS=/usr/include/coin \ + -DCLP_INCLUDE_DIR_HINTS=/usr/include/coin \ + -DOSI_INCLUDE_DIR_HINTS=/usr/include/coin \ + -DLEMON_INCLUDE_DIR_HINTS=/usr/include/lemon \ + -DPopSift_DIR=/usr \ + -DCCTag_DIR=/usr/lib/cmake/CCTag \ + -DUNCERTAINTYTE_DIR=/usr \ + -DMAGMA_ROOT=/usr \ + -DALICEVISION_CUDA_CC_LIST="52;53;60;61;62;70;72;75;80;86;87;89;90" \ + -DALICEVISION_BUILD_EXAMPLES=OFF \ + -DALICEVISION_USE_CUDA=ON \ + -DALICEVISION_USE_CCTAG=ON \ + -DALICEVISION_USE_POPSIFT=ON \ + -DALICEVISION_USE_UNCERTAINTYTE=ON \ + -DALICEVISION_USE_ALEMBIC=ON \ + -DALICEVISION_USE_OPENGV=ON \ + -DALICEVISION_USE_OPENCV=ON + ninja -C build +} + +package() { + cd AliceVision + + ninja -C build doc_doxygen + DESTDIR="${pkgdir}" ninja -C build install + + install -Dm755 COPYING.md "${pkgdir}"/usr/share/licenses/${pkgname}/COPYING.md + install -Dm755 LICENSE-MPL2.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-MPL2.md + install -Dm755 LICENSE-MIT-libmv.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-MIT-libmv.md +} +# vim:set ts=2 sw=2 et: