archrelease: copy trunk to community-any
[ArchLinux/community.git] / alice-vision / repos / community-x86_64 / PKGBUILD
blobb12bad823ebf73a3aa39e25babba8f5dc906a933
1 # Maintainer: Sven-Hendrik Haase <svenstaro@archlinux.org>
2 # Contributor: bartus <arch-user-repoᘓbartus.33mail.com>
3 pkgname=('alice-vision' 'alice-vision-cuda')
4 pkgver=2.4.0
5 pkgrel=16
6 pkgdesc="Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms"
7 arch=('x86_64')
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"
19         "openexr3.patch"
20         "iomanip.patch::https://github.com/alicevision/AliceVision/commit/711eda620449c080b642fc7cb6118758535ab614.patch"
21         "isnormal.patch::https://github.com/alicevision/AliceVision/commit/22fd9d4ba3f8b5344261cedfd9bc3cd4cb58eece.patch"
23 sha256sums=('SKIP'
24             'SKIP'
25             'SKIP'
26             'caf2bf06bd7c6a2387f01f312d94b649ef3e4363b18fcdf95986cd71a0d6c275'
27             'de9def936b143b6a95d8afc93e4673e8f8b0e434785b65c557353549efd95c1b'
28             '3daa4788b181f2f92b31531c24c2ccff6d1546d7824addcd8058c415138346ea'
29             '91b2942041511044c6d486f3ed0f29ce9d498906be7a2230703a706ea6a92743')
31 prepare() {
32   cd AliceVision
34   git submodule init
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>'
53   # fix doc build
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
72 build() {
73   cd AliceVision
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}"
80   cmake \
81     -Bbuild \
82     -GNinja \
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 \
90     -DPopSift_DIR=/usr \
91     -DCCTag_DIR=/usr/lib/cmake/CCTag \
92     -DUNCERTAINTYTE_DIR=/usr \
93     -DMAGMA_ROOT=/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
102   ninja -C build
104   cmake \
105     -Bbuild-cuda \
106     -GNinja \
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 \
114     -DPopSift_DIR=/usr \
115     -DCCTag_DIR=/usr/lib/cmake/CCTag \
116     -DUNCERTAINTYTE_DIR=/usr \
117     -DMAGMA_ROOT=/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
127   ninja -C build
130 package_alice-vision() {
131   cd AliceVision
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)"
150   depends+=('cuda')
151   conflicts=('alice-vision')
152   provides=('alice-vision')
154   cd AliceVision
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: