blob: 18f45c0698c6325db38617224197c51a4428ff02 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
# Maintainer: sfn
# Contributor: Sven-Hendrik Haase <svenstaro@archlinux.org>
# Contributor: bartus <arch-user-repoᘓbartus.33mail.com>
pkgname='alice-vision'
pkgver=3.3.1
pkgrel=3
options=('!debug') # debug package is kinda big -- needs investigation!
pkgdesc="Photogrammetric Computer Vision Framework which provides 3D Reconstruction and Camera Tracking algorithms"
arch=('x86_64')
url="https://alicevision.org/"
license=('MPL-2.0' 'MIT')
depends=('boost-libs' 'geogram' 'coin-or-clp' 'coin-or-coinutils' 'coin-or-lemon' 'ceres-solver' 'openmesh' 'jemalloc' 'zlib'
'alembic' 'popsift' 'assimp' 'onnxruntime' 'cuda' 'openimageio' 'usd')
makedepends=('boost' 'eigen' 'freetype2' 'flann' 'cctag' 'onnx' 'swig' 'expat'
'git' 'cmake' 'doxygen' 'python-sphinx' 'nanoflann' 'metis' 'libe57format')
optdepends=('apriltag: Recognition of Apriltags'
'libe57format: e57 3d imaging format I/O')
source=("git+https://github.com/alicevision/AliceVision.git#tag=v${pkgver}"
"MeshSDFilter::git+https://github.com/alicevision/MeshSDFilter.git#branch=av_develop"
"fix-default-ocio-path.patch"
"alicevision.sh")
sha256sums=('395661cda7ac46e9f694a568a8e7caf42989da64d2e0b206a667881d10ddae71'
'SKIP'
'3f02c715f27498ac8982edee3e3af151b0cd2a9cb83da37fef3b7fec1e34b169'
'b474a12823b1fb0e1613bba0d7bd455f63124aa8c29b3d00df94f0a3c00ab900')
prepare() {
cd AliceVision
git submodule init
git config submodule."src/dependencies/MeshSDFilter".url "${srcdir}/MeshSDFilter"
git -c protocol.file.allow=always submodule update
# we don't want this as it causes a segfault and anyway we want to refer to makepkg config
sed 's|OptimizeForArchitecture()||g' -i src/CMakeLists.txt
# Patch to find system lz4 and coinutils
sed '1i find_package(PkgConfig REQUIRED)' -i src/CMakeLists.txt
sed '1i find_package(PkgConfig REQUIRED)' -i src/cmake/AliceVisionConfig.cmake.in
sed 's|find_package(lz4 REQUIRED)|pkg_check_modules(lz4 REQUIRED IMPORTED_TARGET liblz4)|g' -i src/CMakeLists.txt
sed 's|lz4::lz4|PkgConfig::lz4|g' -i src/CMakeLists.txt
sed 's|find_package(CoinUtils REQUIRED)|pkg_check_modules(CoinUtils REQUIRED IMPORTED_TARGET coinutils)|g' -i src/CMakeLists.txt
sed 's|find_package(Clp REQUIRED)|pkg_check_modules(Clp REQUIRED IMPORTED_TARGET clp)|g' -i src/CMakeLists.txt
sed 's|find_package(Osi REQUIRED)|pkg_check_modules(Osi REQUIRED IMPORTED_TARGET osi-clp)|g' -i src/CMakeLists.txt
sed 's|find_dependency(CoinUtils REQUIRED)|pkg_check_modules(CoinUtils REQUIRED IMPORTED_TARGET coinutils)|g' -i src/cmake/AliceVisionConfig.cmake.in
sed 's|find_dependency(Clp REQUIRED)|pkg_check_modules(Clp REQUIRED IMPORTED_TARGET clp)|g' -i src/cmake/AliceVisionConfig.cmake.in
sed 's|find_dependency(Osi REQUIRED)|pkg_check_modules(Osi REQUIRED IMPORTED_TARGET osi-clp)|g' -i src/cmake/AliceVisionConfig.cmake.in
sed 's|Coin::|PkgConfig::|g' -i src/*/*/CMakeLists.txt
# eigen 5.x compat
sed -i "s|Eigen3 3.3 REQUIRED|Eigen3 REQUIRED|g" src/CMakeLists.txt
# lto is broken for cuda objects
sed -e 's|\(${CUDA_NVCC_FLAGS};-std=c++20\)|\1;-Xcompiler=-fno-lto|g' -i src/CMakeLists.txt
# fix default OCIO config path
patch -p1 -i ../fix-default-ocio-path.patch
# fix doc build
sed 's|docs/sphinx/rst|docs/sphinx|g' -i src/CMakeLists.txt
# fix build against newer boost
sed 's|Boost 1.76.0|Boost|g' -i src/CMakeLists.txt
sed '/Boost::system/d' -i src/software/convert/CMakeLists.txt
sed '/Boost::system/d' -i src/aliceVision/system/CMakeLists.txt
sed '/Boost::system/d' -i src/aliceVision/sensorDB/CMakeLists.txt
sed 's|serialization system thread|serialization thread|g' -i src/CMakeLists.txt
# fix build against newer cuda
sed 's|\(<< "\\t- clock frequency (kHz):\)|//\1|g' -i src/aliceVision/gpu/gpu.cpp
sed 's|ALICEVISION_CUDA_CC_LIST_BASIC 50 52 60 61 62 70 72 75 80 86 87 89 90|ALICEVISION_CUDA_CC_LIST_BASIC 75 80 86 87 89 90|g' -i src/CMakeLists.txt
# patch build against newer usd
sed 's|<pxr/usd/usd/zipFile.h>|<pxr/usd/sdf/zipFile.h>|g' -i src/software/export/main_exportUSD.cpp
sed 's|UsdZipFileWriter|SdfZipFileWriter|g' -i src/software/export/main_exportUSD.cpp
sed '/usdShade/a usd_ms' -i src/software/export/CMakeLists.txt
}
build() {
local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
cd ${srcdir}/AliceVision
cmake \
-Bbuild \
-DALICEVISION_BUILD_DEPENDENCIES=OFF \
-DALICEVISION_INSTALL_MESHROOM_PLUGIN=ON \
-DALICEVISION_BUILD_SWIG_BINDINGS=ON \
-DALICEVISION_BUILD_DOC=OFF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_SYSTEM_INCLUDE_PATH='/usr/include/python"${python_version}/' \
-DCMAKE_SKIP_INSTALL_RPATH=ON
make -C build
}
package() {
install -vDm 644 "${srcdir}"/alicevision.sh -t "${pkgdir}"/etc/profile.d/
cd ${srcdir}/AliceVision
DESTDIR="${pkgdir}" make -C build install/fast
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:
|