1 # Maintainer: Sven-Hendrik Haase <svenstaro@archlinux.org>
2 # Contributor: bartus <arch-user-repoᘓbartus.33mail.com>
3 pkgname=('alice-vision' 'alice-vision-cuda')
6 pkgdesc="Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms"
8 url="https://alicevision.github.io/"
9 options=('!lto' '!debug') # debug package is kinda big -- needs investigation!
10 license=('MPL2' 'MIT')
11 depends=('boost-libs' 'openimageio' 'flann' 'geogram' 'coin-or-clp' 'ceres-solver' 'cctag'
12 'alembic' 'opengv' 'opencv' 'popsift' 'uncertainty-framework')
13 makedepends=('boost' 'ninja' 'eigen' 'freetype2' 'coin-or-coinutils' 'coin-or-lemon'
14 'git' 'cmake' 'doxygen' 'python-sphinx' 'cuda')
15 source=("git+https://github.com/alicevision/AliceVision#tag=v${pkgver}"
16 "MeshSDFilter::git+https://github.com/alicevision/MeshSDFilter.git#branch=av_develop"
17 "nanoflann::git+https://github.com/alicevision/nanoflann.git"
18 "cmake_cxx_std_14.patch"
20 "iomanip.patch::https://github.com/alicevision/AliceVision/commit/711eda620449c080b642fc7cb6118758535ab614.patch"
21 "isnormal.patch::https://github.com/alicevision/AliceVision/commit/22fd9d4ba3f8b5344261cedfd9bc3cd4cb58eece.patch"
26 'caf2bf06bd7c6a2387f01f312d94b649ef3e4363b18fcdf95986cd71a0d6c275'
27 'de9def936b143b6a95d8afc93e4673e8f8b0e434785b65c557353549efd95c1b'
28 '3daa4788b181f2f92b31531c24c2ccff6d1546d7824addcd8058c415138346ea'
29 '91b2942041511044c6d486f3ed0f29ce9d498906be7a2230703a706ea6a92743')
35 git config submodule."src/dependencies/MeshSDFilter".url "${srcdir}/MeshSDFilter"
36 git config submodule."src/dependencies/nanoflann".url "${srcdir}/nanoflann"
37 git -c protocol.file.allow=always submodule update
39 # fix missing include that breaks building with boost 1.81.0
40 git format-patch -1 --stdout 9c4481148d25 | patch -Np1
42 patch -Np1 -i"${srcdir}"/cmake_cxx_std_14.patch
44 # fix FindOpenEXR.cmake against openexr:3
45 patch -Np1 -i"${srcdir}"/openexr3.patch
47 # fix header relocation against openexr:3
48 grep -lR "#include.*OpenEXR/half.h"|xargs sed -i 's|OpenEXR/half|Imath/half|'
50 # fix gcc:11 headers regression
51 grep -lR "std::numeric_limits"|xargs sed -i '1 i\#include <limits>'
54 sed -i '/^ *install.*doc/s/doc/htmlDoc/' src/CMakeLists.txt
56 # fix CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON preserve target name capitalisation
57 sed 's/OPENEXR_FOUND/OpenEXR_FOUND/g' -i src/CMakeLists.txt
59 # fix openimageio:2 target library
60 sed 's/${OPENIMAGEIO_LIBRARIES};dl/OpenImageIO::OpenImageIO/g' -i src/CMakeLists.txt
62 # fix [io]fstream(path) initializer
63 sed '1 i#include <fstream>' -i $(grep -Rl std::[io]fstream src)
65 # fix missing <iomanip> header (setw,setfill,etc.)
66 git apply -v "${srcdir}"/iomanip.patch
68 # fix missing isnormal() from std namespace
69 git apply -v "${srcdir}"/isnormal.patch
75 # Patch out flags that causes failures during various stages.
76 export CXXFLAGS="${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS}"
77 export CXXFLAGS="${CXXFLAGS/-fcf-protection}"
78 export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection}"
83 -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
84 -DCMAKE_INSTALL_PREFIX=/usr \
85 -DCMAKE_INSTALL_LIBDIR=lib \
86 -DCOINUTILS_INCLUDE_DIR_HINTS=/usr/include/coin \
87 -DCLP_INCLUDE_DIR_HINTS=/usr/include/coin \
88 -DOSI_INCLUDE_DIR_HINTS=/usr/include/coin \
89 -DLEMON_INCLUDE_DIR_HINTS=/usr/include/lemon \
91 -DCCTag_DIR=/usr/lib/cmake/CCTag \
92 -DUNCERTAINTYTE_DIR=/usr \
94 -DALICEVISION_BUILD_EXAMPLES=OFF \
95 -DALICEVISION_USE_CUDA=OFF \
96 -DALICEVISION_USE_CCTAG=ON \
97 -DALICEVISION_USE_POPSIFT=ON \
98 -DALICEVISION_USE_UNCERTAINTYTE=ON \
99 -DALICEVISION_USE_ALEMBIC=ON \
100 -DALICEVISION_USE_OPENGV=ON \
101 -DALICEVISION_USE_OPENCV=ON
107 -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
108 -DCMAKE_INSTALL_PREFIX=/usr \
109 -DCMAKE_INSTALL_LIBDIR=lib \
110 -DCOINUTILS_INCLUDE_DIR_HINTS=/usr/include/coin \
111 -DCLP_INCLUDE_DIR_HINTS=/usr/include/coin \
112 -DOSI_INCLUDE_DIR_HINTS=/usr/include/coin \
113 -DLEMON_INCLUDE_DIR_HINTS=/usr/include/lemon \
115 -DCCTag_DIR=/usr/lib/cmake/CCTag \
116 -DUNCERTAINTYTE_DIR=/usr \
118 -DALICEVISION_CUDA_CC_LIST="52;53;60;61;62;70;72;75;80;86;87;89;90" \
119 -DALICEVISION_BUILD_EXAMPLES=OFF \
120 -DALICEVISION_USE_CUDA=ON \
121 -DALICEVISION_USE_CCTAG=ON \
122 -DALICEVISION_USE_POPSIFT=ON \
123 -DALICEVISION_USE_UNCERTAINTYTE=ON \
124 -DALICEVISION_USE_ALEMBIC=ON \
125 -DALICEVISION_USE_OPENGV=ON \
126 -DALICEVISION_USE_OPENCV=ON
130 package_alice-vision() {
133 ninja -C build doc_doxygen
134 DESTDIR="${pkgdir}" ninja -C build install
136 # Clean up some stuff that gets installed for some reason
137 rm "${pkgdir}"/usr/lib/libflann_cpp_s.a
138 rm "${pkgdir}"/usr/lib/pkgconfig/flann.pc
140 # Fix OpenImageIO linkage in client libraries
141 sed -i 's/OpenImageIO::OpenImageIO/${OPENIMAGEIO_LIBRARIES}/g' "${pkgdir}"/usr/share/aliceVision/cmake/AliceVisionTargets.cmake
143 install -Dm755 COPYING.md "${pkgdir}"/usr/share/licenses/${pkgname}/COPYING.md
144 install -Dm755 LICENSE-MPL2.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-MPL2.md
145 install -Dm755 LICENSE-MIT-libmv.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-MIT-libmv.md
148 package_alice-vision-cuda() {
149 pkgdesc="Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms (with CUDA)"
151 conflicts=('alice-vision')
152 provides=('alice-vision')
156 ninja -C build-cuda doc_doxygen
157 DESTDIR="${pkgdir}" ninja -C build-cuda install
159 # Clean up some stuff that gets installed for some reason
160 rm "${pkgdir}"/usr/lib/libflann_cpp_s.a
161 rm "${pkgdir}"/usr/lib/pkgconfig/flann.pc
163 # Fix OpenImageIO linkage in client libraries
164 sed -i 's/OpenImageIO::OpenImageIO/${OPENIMAGEIO_LIBRARIES}/g' "${pkgdir}"/usr/share/aliceVision/cmake/AliceVisionTargets.cmake
166 install -Dm755 COPYING.md "${pkgdir}"/usr/share/licenses/${pkgname}/COPYING.md
167 install -Dm755 LICENSE-MPL2.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-MPL2.md
168 install -Dm755 LICENSE-MIT-libmv.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-MIT-libmv.md
171 # vim:set ts=2 sw=2 et: