Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull request to merge #1

Open
wants to merge 205 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
ee8ded9
Fixes bug in sprt.cc: num_inliers was not set. (#1360)
rmbrualla Dec 29, 2021
d4c6031
Prevent a divide by zero corner case. (#1361)
rmbrualla Dec 29, 2021
4032790
Adds missing header. (#1362)
rmbrualla Dec 30, 2021
9db82a8
Require Qt in COLMAPConfig only if GUI is enabled (#1365)
skydes Jan 2, 2022
5f03cfc
Keep precision in the process of storing in text. (#1363)
whuaegeanse Jan 3, 2022
7d61a08
Expose exe internals (#1366)
skydes Jan 4, 2022
2e02875
Fix inliers matches extraction when the homography is selected over t…
ferreram Jan 4, 2022
83aa340
Export library for exe functions (#1368)
skydes Jan 4, 2022
8b78dc8
Remove deprecated Mac OSX 10.14 image in ADO pipeline (#1383)
ahojnnes Jan 20, 2022
0a71274
Add Mac OSX 11 ADO pipeline job (#1384)
ahojnnes Jan 20, 2022
e3796f1
Fix compiler warnings (#1382)
ahojnnes Jan 20, 2022
030fb50
Fix clang compiler warnings (#1387)
ahojnnes Jan 20, 2022
98974ba
Add Address Sanitizer options and fix reported issues (#1390)
ahojnnes Jan 22, 2022
6093342
User/joschonb/asan cleanup (#1391)
ahojnnes Jan 22, 2022
2f323fd
Add ADO pipeline for Visual Studio 2022 (#1392)
ahojnnes Jan 22, 2022
d328534
Add ccache option (#1395)
ahojnnes Jan 23, 2022
ce55703
Update ModelAligner to handle GPS and custom coords. and more (#1371)
IfremerUnderwater Jan 23, 2022
e47d22a
Fix camera size change under Windows (#1401)
ahojnnes Jan 25, 2022
df86e67
Release of COLMAP version 3.7 (#1402)
ahojnnes Jan 26, 2022
ea40ef9
Reverting back to the original implementation which did not use the E…
ahojnnes Jan 26, 2022
5e2cd24
Updating geo-registration doc. (#1410)
IfremerUnderwater Jan 27, 2022
e644b52
Adding user-specified option for reconstructing purely planar scene. …
IfremerUnderwater Jan 27, 2022
56355d4
Fix Mac build script
ahojnnes Jan 30, 2022
e180948
Update copyright year
ahojnnes Jan 30, 2022
1a4d0ba
Update copyright year
ahojnnes Jan 30, 2022
2b72306
Only apply sqlite vacuum command when elements are deleted from the d…
IfremerUnderwater Jan 31, 2022
29a1e36
Replace Graclus with Metis dependency (#1422)
ahojnnes Feb 25, 2022
b0ea854
Update ceres download URL in build script (#1430)
whuaegeanse Feb 25, 2022
ba0aa46
Fix type errors when building colmap with build.py in windows . (#1440)
whuaegeanse Feb 27, 2022
31df46c
Fix bug in the computation of the statistics Global/Local BA (#1449)
whuaegeanse Mar 5, 2022
33e2692
Add RefineGeneralizedAbsolutePose and covariance estimation (#1464)
skydes Mar 17, 2022
6c3e002
Update docker image definition (#1478)
ahojnnes Apr 1, 2022
30521f1
Upgrade deprecated ceres parameterizations to manifolds (#1477)
ahojnnes Apr 1, 2022
1b9f226
Use masks for stereo fusion on automatic reconstruction (#1488)
ibrarmalik Apr 19, 2022
f9dc48d
fix random seed set failed from external interface (#1498)
WZG3661 Apr 19, 2022
4d737b8
Replace deprecated Eigen nonZeros() call for most recent Eigen versio…
nackjaylor Apr 20, 2022
c419bba
Fix ceres-solver folder name (#1501)
f-fl0 Apr 22, 2022
f4c6bea
Improved convergence criterion for XYZ to ELL conversion (#1505)
ahojnnes Apr 26, 2022
ac6bf11
Fix bug in the function SetPtr of Bitmap (#1525)
whuaegeanse May 17, 2022
5695733
Avoid the calling of copy constructor/assignment (#1524)
whuaegeanse May 18, 2022
0ab43bf
Avoid calling copy constructors of FeatureKeypoints and FeatureDescri…
whuaegeanse Jun 13, 2022
8efe7a6
Initialize freeimage if statically linked (#1549)
ahojnnes Jun 28, 2022
69f73e3
Fix. (#1557)
mihaidusmanu Jul 5, 2022
d6f528a
visualize_model.py: added FULL_OPENCV model (#1552)
soeroesg Jul 5, 2022
cc00f3d
Update vcpkg version to fix CI pipeline (#1568)
ahojnnes Aug 18, 2022
29e0c94
User/joschonb/macos 12 (#1569)
ahojnnes Aug 18, 2022
fd36126
Fix inconsistent between the actual executed image reader option and …
xuchenghust Aug 18, 2022
acd5261
checkout the expected version of ceres solver (#1576)
scott-vsi Aug 19, 2022
1c026ec
use default qt5 brew install directory #1573 (#1574)
catapulta Aug 25, 2022
6bcc832
Fix image undistortion with nested image folders (#1606)
ahojnnes Aug 27, 2022
5879f41
Fix source file permissions (#1607)
ahojnnes Aug 28, 2022
7acff81
Fixed the collection of arguments in colmap.bat (#1121)
tdegraaff Sep 8, 2022
5659034
Add OpenMP to COLMAP_EXTERNAL_LIBRARIES if enabled (#1632)
logchan Sep 13, 2022
87b3aa3
Fix output tile reconstructions are the same as the input reconstruct…
Serenitysmk Sep 13, 2022
7d8f5cc
add `libmetis-dev` to solve `METIS_INCLUDE_DIRS`. (#1672)
FavorMylikes Oct 30, 2022
871bd2a
Update install.rst (#1671)
tomer-grin Oct 30, 2022
bd6a9b9
Update freeimage links. (#1675)
Yulv-git Nov 2, 2022
9be1860
fix small typo (#1668)
skal65535 Nov 2, 2022
b016aed
Update build.py (#1658)
aghand0ur Nov 6, 2022
62c0519
Add use_cache in fusion options GUI (#1655)
hrflr Nov 14, 2022
9ad55e0
Add CI pipeline for Ubuntu 22.04 (#1688)
ahojnnes Nov 15, 2022
b5ca8cc
Avoid unnecessary copies of data (#1691)
ahojnnes Nov 15, 2022
0795180
Reduce memory allocations in correspondence graph search (#1692)
ahojnnes Nov 15, 2022
b02e939
Use FindCUDAToolkit when available. (#1693)
hanseuljun Nov 16, 2022
8e13af1
Fixed a crash due to inconsistent undistortion (#1698)
SomeAlphabetGuy Nov 26, 2022
0fed789
Add CUDA Ubuntu 22.04 CI build (#1705)
ahojnnes Dec 10, 2022
baf9f99
Delete the redundancy install of libmetis-dev (#1721)
thomas-graphopti Dec 13, 2022
ddd5202
Fix broken loading of image masks on macOS (#1639)
buesma Dec 24, 2022
feeed46
Update install instructions with latest hints and known issues (#1736)
ahojnnes Dec 26, 2022
fdc225d
Modernize smart pointer initialization, fix alloc/dealloc mismatch (#…
ahojnnes Dec 26, 2022
c41b36c
Improve bug report template
ahojnnes Dec 31, 2022
209138b
Fix typo in cli.rst (#1747)
ojhernandez Jan 8, 2023
c36cec3
Fix inconsistent image resizing between CPU/GPU implementations of SI…
Yzhbuaa Jan 8, 2023
d5b4242
Reduce number of SIFT test features to make tests run under WSL (#1748)
ahojnnes Jan 8, 2023
7eee001
Tag documentation version with dev (#1749)
ahojnnes Jan 8, 2023
bf3e191
Update copyright to 2023 (#1750)
ahojnnes Jan 8, 2023
5ba2863
Fix max image dimension for positive first_octave (#1751)
ahojnnes Jan 8, 2023
37f8c74
Fix SIFT GPU match creation (#1757)
ahojnnes Jan 15, 2023
5d3b028
Fix SIFT tests for OpenGL (#1762)
ahojnnes Jan 16, 2023
919a4f0
update vcpkg
ahojnnes Jan 26, 2023
15c5157
Suppress CUDA stack size warning for ptxas (#1770)
ahojnnes Jan 26, 2023
c84275e
Merge branch 'dev' of https://github.com/colmap/colmap into dev
ahojnnes Jan 27, 2023
9449407
Simplify CUDA CMake configuration (#1776)
ahojnnes Jan 28, 2023
1f31e94
Fixes for CUDA compilation (#1777)
ahojnnes Jan 28, 2023
a7c7b10
Improvements to dockerfile (#1778)
ahojnnes Jan 29, 2023
1bf0fa9
Default to native CUDA architecture (#1781)
ahojnnes Jan 29, 2023
b551143
Depend on system installed FLANN (#1782)
ahojnnes Jan 29, 2023
111988d
Option to store relative pose between two cameras in database (#1774)
yanxke Jan 30, 2023
1f2eba1
Depend on system installed SQLite3 (#1783)
ahojnnes Jan 31, 2023
7360715
sqlite
ahojnnes Jan 31, 2023
43de802
Update changelist for 3.8 release
ahojnnes Jan 31, 2023
b243efc
clang format all code and require clang-format-14 (#1785)
ahojnnes Feb 1, 2023
45edd3d
Fix compilation for vcpkg windows build (#1791)
ahojnnes Feb 3, 2023
95b72de
Increment version number to 3.9 (#1794)
ahojnnes Feb 4, 2023
7cadfbd
Remove unnecessary /arch:sse2 flag for MSVC (#1798)
ahojnnes Feb 12, 2023
db2b5d0
Updated faq.rst (#1801)
CGCooke Feb 15, 2023
692e856
Fixed mistake in code comment for OpenCV Fisheye camera (#1802)
CGCooke Feb 15, 2023
d3c8d5d
Replace deprecated cudaThreadSynchronize with cudaDeviceSynchronize (…
ahojnnes Feb 18, 2023
64916f8
[WIP] Replace deprecated cuda texture references with texture objects…
ahojnnes Mar 1, 2023
78c12b4
Remove unused SIFT GPU cuda texture reference (#1823)
ahojnnes Mar 1, 2023
8186239
Upgrade SiftGPU to use CUDA texture objects (#1838)
ahojnnes Mar 12, 2023
c9729fa
Remove PBA as bundle adjustment backend to support CUDA 12+ (#1840)
ahojnnes Mar 12, 2023
30da037
Replace deprecated CUDA sature function call (#1841)
ahojnnes Mar 12, 2023
2b1f843
Avoid unnecessary mallocs during sampling (#1842)
ahojnnes Mar 12, 2023
fcd6493
Cleaned up docker readme and scripts (#1852)
ahojnnes Mar 19, 2023
d812bcb
add "Shared intrinsics per sub-folder" checkbox to automatic reconstr…
kenshi84 Mar 25, 2023
bd84ad6
Update vcpkg (#1925)
ahojnnes May 18, 2023
392e4d8
Log the name of the file that causes Mat::Read() to checkfail (#1923)
SomeAlphabetGuy May 18, 2023
ceaaf32
check Z_index correctly in ReadPly (#1896)
countywest May 18, 2023
9eddf2e
Don't re-open the file when reading and writing matrices (#1926)
SomeAlphabetGuy May 19, 2023
1f80118
Update vcpkg to latest commit (#1948)
ahojnnes Jun 4, 2023
03af239
Remove unnecessary custom Eigen aligned allocator macros (#1947)
ahojnnes Jun 5, 2023
3947f67
Prefix internal sources/includes with colmap (#1949)
ahojnnes Jun 5, 2023
079b8ad
Simplify clang-format config and sort includes (#1950)
ahojnnes Jun 5, 2023
a7cc3c3
Handle possible overflow in median function (#1951)
ahojnnes Jun 5, 2023
bce8f13
Run ASan pipeline under Ubuntu 22.04 (#1952)
ahojnnes Jun 5, 2023
3cf97d0
Fix Ceres version test for v3.0 (#1954)
drkoller Jun 9, 2023
b6754b8
Fix deprecation warning for Qt font metrics width (#1958)
ahojnnes Jun 12, 2023
53022b4
Setup clang-tidy and enable perf warnings (#1959)
ahojnnes Jun 13, 2023
50e405d
VCPKG binary caching for windows CI (#1957)
ahojnnes Jun 17, 2023
b7647c2
Cosmetics for VS dev shell script (#1965)
ahojnnes Jun 17, 2023
23206e2
Enable clang-tidy concurrency checks (#1967)
ahojnnes Jun 17, 2023
3d64864
[Bug] fix finding shared points3D in FindLocalBundle (#1963)
Jun 18, 2023
31ba163
Enable compiler caching in CI (#1972)
ahojnnes Jun 22, 2023
eaffb79
Set number of features for different quality levels (#1975)
ahojnnes Jun 24, 2023
eff49fd
Specify parameter name using inline comment (#1976)
ahojnnes Jun 24, 2023
fac2fa6
Fix Windows CCache (#1977)
ahojnnes Jun 24, 2023
24588ba
Add e2e tests for CI pipeline (#1397)
ahojnnes Jun 27, 2023
62c1e8f
[feature] print verbose information for model analyzer (#1978)
Jun 29, 2023
ae42beb
Add a missing include to compile with gcc13 (#1984)
EstebanDugueperoux2 Jun 29, 2023
7ea7fd2
Speed up snapshot construct in RigBundleAdjuster (#1988)
Jun 29, 2023
d6a5335
Update outdated docker cuda image tag (#1992)
ahojnnes Jul 2, 2023
724658d
Add boulders ETH3D dataset to CI E2E tests (#1991)
ahojnnes Jul 2, 2023
56bca9c
Update executable paths in documentation (#1993)
ahojnnes Jul 2, 2023
af55137
Avoid unnecessary copy in ExtractTopScaleFeatures (#1994)
ahojnnes Jul 2, 2023
91068ea
Move related code under new image library folder (#1995)
ahojnnes Jul 2, 2023
3c38248
Move related code under new camera folder (#1996)
ahojnnes Jul 2, 2023
7ab7aa9
Added a virtual destructor to Sampler (#2000)
SomeAlphabetGuy Jul 5, 2023
2226fa1
Add a few more clang-tidy checks (#2001)
ahojnnes Jul 5, 2023
aa6b6a5
Move related code to new geometry module (#2006)
ahojnnes Jul 7, 2023
3741bb2
Use #pragma once as include guard (#2007)
ahojnnes Jul 7, 2023
eb0bf16
Add bugprone-* clang-tidy checks (#2010)
ahojnnes Jul 8, 2023
5998ab3
Avoid const params in declarations (#2011)
ahojnnes Jul 8, 2023
717d069
Set and require C++14 (#2012)
ahojnnes Jul 8, 2023
33ba037
Cleanup math functions that are now part of eigen/stdlib (#2013)
ahojnnes Jul 8, 2023
e5a2f67
Add clang-analyzer checks (#2014)
ahojnnes Jul 9, 2023
c0e090d
Replace CMake provided find_package scripts and modern CMake targets …
ahojnnes Jul 9, 2023
43b38f0
Switch from Boost unit tests to Gtest (#2017)
ahojnnes Jul 9, 2023
2f41a50
Fix ccache restore keys (#2018)
ahojnnes Jul 9, 2023
57a45da
Add missing cacheHitVar to fix ccache (#2020)
ahojnnes Jul 10, 2023
567d29e
Add missing Boost::graph import (#2021)
skydes Jul 10, 2023
b04b56d
Compressed/flattened correspondence graph for faster triangulation / …
ahojnnes Jul 10, 2023
9337c75
Fix window ccache key (#2024)
ahojnnes Jul 10, 2023
1c92a1e
Consistently use shared_ptr for shared pointers for SFM objects (#2023)
ahojnnes Jul 10, 2023
2ea1631
Remove check on Qt version (#2022)
skydes Jul 11, 2023
8af292c
Synthetics for E2E incremental mapper tests (#2025)
ahojnnes Jul 12, 2023
5526aad
New math module (#2028)
ahojnnes Jul 12, 2023
b189dd9
Rename RandomReal/Integer to RandomUniformReal/Integer
ahojnnes Jul 12, 2023
d780e1d
Refactor sim3 (#2030)
ahojnnes Jul 12, 2023
02c656e
Extract reconstruction alignment functions into new file (#2032)
ahojnnes Jul 13, 2023
99da530
Add E2E hierarchical mapper tests (#2033)
ahojnnes Jul 13, 2023
05cf5bc
Rename SimilarityTransform3 to Sim3d (#2034)
ahojnnes Jul 13, 2023
649d58c
Add Rigid3d transform class (#2035)
ahojnnes Jul 14, 2023
389405b
Consolidate and simplify Rigid3d and Sim3d (#2037)
ahojnnes Jul 14, 2023
6d000e4
Some small improvements/cleanup for rigid3d/sim3d usage (#2041)
ahojnnes Jul 18, 2023
67029ad
CamFromWorld replaces qvec/tvec (#2039)
ahojnnes Jul 20, 2023
b11786f
Retry download of ETH3D datasets (#2043)
ahojnnes Jul 20, 2023
3e2795c
WorldToImage becomes CamToImg (#2044)
ahojnnes Jul 20, 2023
3660ffc
Camera models operate on camera rays (#2045)
ahojnnes Jul 20, 2023
0a76bcb
Ignore directory .vs (#2046)
whuaegeanse Jul 21, 2023
c7d02cf
Use the reference of Rigid3d to reduce memory consumption (#2047)
whuaegeanse Jul 21, 2023
8840747
CamToImg/ImgToCam become ImgFromCam/CamFromImg
ahojnnes Jul 21, 2023
cbb0eb4
Inline point to image projection (#2050)
ahojnnes Jul 22, 2023
8b7f997
Use Eigen operations to lift image point
ahojnnes Jul 21, 2023
0408a72
Point2D becomes simpler pure data struct (#2051)
ahojnnes Jul 22, 2023
d13a212
Use Eigen math for estimator utils (#2052)
ahojnnes Jul 22, 2023
8a3f810
Move cost functions under geometry module and rename (#2053)
ahojnnes Jul 23, 2023
595b6df
Bundle adjuster is an estimator (#2054)
ahojnnes Jul 23, 2023
d17290b
Remaining base targets move to new scene module (#2055)
ahojnnes Jul 23, 2023
93af740
Vote and verify improvements/speedup (#2056)
ahojnnes Jul 23, 2023
8317785
Generate version info in .cc file to reduce number of recompilations …
ahojnnes Jul 23, 2023
a0d9e6d
Move cost_functions to estimators module to avoid circular deps
ahojnnes Jul 22, 2023
5a6b3a8
Option manager moves to controllers to disentangle circular deps (#2058)
ahojnnes Jul 23, 2023
4afd5d9
Granular CMake modules and build targets (#2059)
ahojnnes Jul 26, 2023
e8b8d28
Fix docker build (#2069)
ahojnnes Jul 28, 2023
1830131
Remove warnings about duplicated marco NOMINMAX (#2067)
whuaegeanse Jul 28, 2023
6b299ef
lib folder becomes thirdparty folder (#2068)
ahojnnes Jul 28, 2023
6c98cd0
Remove unnecessary checks in image pair conversion (#2074)
ahojnnes Jul 29, 2023
56d2e9c
Replace flaky ETH3D terrace with courtyard dataset (#2075)
ahojnnes Jul 29, 2023
6acfbbe
Synthesize chained match graph for more mapper tests (#2076)
ahojnnes Jul 29, 2023
6362d1d
Introduce abstract feature extractor (#2077)
ahojnnes Jul 29, 2023
1cebcbc
Avoid unnecessary data copies in feature conversion utils (#2078)
ahojnnes Jul 30, 2023
2479698
Abstract feature matcher (#2082)
ahojnnes Aug 1, 2023
8101a9a
Encapsulate feature matching controller/worker implementations (#2085)
ahojnnes Aug 1, 2023
9f3d892
Some cosmetics for util/feature types (#2084)
ahojnnes Aug 1, 2023
5014f39
Use std:: when cmath included (#2081)
whuaegeanse Aug 1, 2023
f25f0d6
Encapsulate feature extraction controller/worker implementations (#2086)
ahojnnes Aug 1, 2023
c1e43c0
Reenable VS2022 CI pipeline (#1689)
ahojnnes Aug 1, 2023
911779d
Consistent transform convention for CenterAndNormalizeImagePoints (#2…
ahojnnes Aug 1, 2023
acbb250
Retire Mac 11 CI build (#2094)
ahojnnes Aug 2, 2023
1dc8e37
Add ReprojErrorConstantPoint3DCostFunction to speed up the RefineAbso…
whuaegeanse Aug 3, 2023
bb00ccc
Numeric differentiation of camera model using partial piv LU (#2100)
ahojnnes Aug 6, 2023
f2255fe
cmake: add testing.cc to colmap_util only if TESTS_ENABLED=ON (#2102)
NeroBurner Aug 8, 2023
a7c29b4
Set CUDA_STANDARD to 14 (#2108)
ahojnnes Aug 12, 2023
d13738b
Transform back to existing images positions after mapper processing i…
IfremerUnderwater Aug 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 21 additions & 0 deletions .azure-pipelines/build-docker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
parameters:
displayName: 'Docker'

jobs:
- job: docker_build
displayName: '${{ parameters.displayName }}'
pool:
vmImage: 'ubuntu-latest'
variables:
DOCKER_BUILDKIT: 1
steps:
- bash: |
echo "Building git commit: $(Build.SourceVersion)"
displayName: "Log git commit"

- task: Docker@2
displayName: Build
inputs:
command: build
arguments: --build-arg COLMAP_GIT_COMMIT=$(Build.SourceVersion) --build-arg CUDA_ARCHITECTURES=50
Dockerfile: docker/Dockerfile
36 changes: 29 additions & 7 deletions .azure-pipelines/build-mac.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,42 @@
parameters:
displayName: 'Mac 10.15'
displayName: Mac 10.15
macVersion: '10.15'

jobs:
- job: mac_build_${{ replace(parameters.macVersion, '.', '') }}
displayName: '${{ parameters.displayName }}'
displayName: ${{ parameters.displayName }}
pool:
vmImage: 'macOS-${{ parameters.macVersion }}'
variables:
CCACHE_DIR: $(Pipeline.Workspace)/ccache
CCACHE_BASEDIR: $(Build.SourcesDirectory)
CCACHE_VERSION: 1
steps:
- script: |
brew install \
cmake \
ninja \
boost \
eigen \
flann \
freeimage \
metis \
glog \
gflags \
googletest \
ceres-solver \
qt5 \
glew \
cgal
displayName: 'Install dependencies'
cgal \
sqlite3 \
ccache
displayName: Install dependencies

- task: Cache@2
inputs:
key: ccache | "$(CCACHE_VERSION)" | "$(Agent.OS)" | "${{ parameters.displayName }}" | "$(Build.BuildNumber)"
restoreKeys: ccache | "$(CCACHE_VERSION)" | "$(Agent.OS)" | "${{ parameters.displayName }}"
path: $(CCACHE_DIR)
displayName: Restore CCache

- script: |
export PATH="/usr/local/opt/qt@5/bin:$PATH"
Expand All @@ -33,7 +48,7 @@ jobs:
-DTESTS_ENABLED=ON \
-DQt5_DIR=/usr/local/opt/qt/lib/cmake/Qt5
ninja
displayName: 'Configure and build'
displayName: Configure and build

- script: |
cd build
Expand All @@ -44,4 +59,11 @@ jobs:
ctest --rerun-failed --output-on-failure
fi
exit $tests_pass
displayName: 'Run tests'
displayName: Run tests

- script: |
set -x
ccache --show-stats
ccache --evict-older-than 1d
ccache --show-stats
displayName: Cleanup ccache
167 changes: 138 additions & 29 deletions .azure-pipelines/build-ubuntu.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,30 @@
parameters:
displayName: 'Ubuntu 18.04'
ubuntuVersion: '18.04'
displayName: Ubuntu 20.04
ubuntuVersion: '20.04'
cudaEnabled: false
asanEnabled: false
e2eTestsEnabled: false
cmakeBuildType: Release

jobs:
- job: ubuntu_build_${{ replace(parameters.ubuntuVersion, '.', '') }}_cuda_${{ parameters.cudaEnabled }}
displayName: '${{ parameters.displayName }}'
- job: ubuntu_build_${{ replace(parameters.ubuntuVersion, '.', '') }}_cuda_${{ parameters.cudaEnabled }}_asan_${{ parameters.asanEnabled }}_${{ parameters.cmakeBuildType }}_e2e_${{ parameters.e2eTestsEnabled }}
displayName: ${{ parameters.displayName }}
pool:
vmImage: 'ubuntu-${{ parameters.ubuntuVersion }}'
variables:
CCACHE_DIR: $(Pipeline.Workspace)/ccache
CCACHE_BASEDIR: $(Build.SourcesDirectory)
CCACHE_VERSION: 1
${{ if eq(parameters.asanEnabled, false) }}:
ctestExclusions: "(mvs/colmap_mvs_gpu_mat_test)"
${{ if eq(parameters.asanEnabled, true) }}:
ctestExclusions: "(feature/colmap_feature_sift_test)|(util/colmap_util_opengl_utils_test)|(mvs/colmap_mvs_gpu_mat_test)"
${{ if eq(parameters.cmakeBuildType, 'ClangTidy') }}:
# Do not abort compilation in ClangTidy mode, so we see issues
# for all targets logged out to the console.
numAllowedNinjaErrors: 1000
${{ if ne(parameters.cmakeBuildType, 'ClangTidy') }}:
numAllowedNinjaErrors: 1
steps:
- script: |
sudo apt-get update && sudo apt-get install -y \
Expand All @@ -17,52 +34,144 @@ jobs:
libboost-filesystem-dev \
libboost-graph-dev \
libboost-system-dev \
libboost-test-dev \
libeigen3-dev \
libceres-dev \
libflann-dev \
libfreeimage-dev \
libmetis-dev \
libgoogle-glog-dev \
libgflags-dev \
libgtest-dev \
libsqlite3-dev \
libglew-dev \
qtbase5-dev \
libqt5opengl5-dev \
libcgal-dev \
libcgal-qt5-dev \
libgl1-mesa-dri \
libunwind-dev \
xvfb
displayName: 'Install dependencies'
displayName: Install dependencies

- ${{ if eq(parameters.cudaEnabled, true) }}:
- ${{ if eq(parameters.ubuntuVersion, '22.04') }}:
- script: |
sudo apt-get install -y \
nvidia-cuda-toolkit \
nvidia-cuda-toolkit-gcc \
gcc-10 g++-10
echo '##vso[task.setvariable variable=CC]/usr/bin/gcc-10'
echo '##vso[task.setvariable variable=CXX]/usr/bin/g++-10'
echo '##vso[task.setvariable variable=CUDAHOSTCXX]/usr/bin/g++-10'
displayName: Install CUDA
- ${{ if ne(parameters.ubuntuVersion, '22.04') }}:
- script: |
sudo apt-get install -y \
nvidia-cuda-toolkit \
nvidia-cuda-toolkit-gcc
echo '##vso[task.setvariable variable=CC]/usr/bin/cuda-gcc'
echo '##vso[task.setvariable variable=CXX]/usr/bin/cuda-g++'
displayName: Install CUDA

- ${{ if eq(parameters.asanEnabled, true) }}:
- script: |
sudo apt-get install -y clang-15 libomp-15-dev
echo '##vso[task.setvariable variable=CC]/usr/bin/clang-15'
echo '##vso[task.setvariable variable=CXX]/usr/bin/clang++-15'
displayName: Install Clang

- ${{ if eq(parameters.cmakeBuildType, 'ClangTidy') }}:
- script: |
sudo apt-get install -y \
nvidia-cuda-toolkit \
nvidia-cuda-toolkit-gcc
echo '##vso[task.setvariable variable=CC]/usr/bin/cuda-gcc'
echo '##vso[task.setvariable variable=CXX]/usr/bin/cuda-g++'
displayName: 'Install CUDA'
sudo apt-get install -y clang-15 clang-tidy-15 libomp-15-dev
echo '##vso[task.setvariable variable=CC]/usr/bin/clang-15'
echo '##vso[task.setvariable variable=CXX]/usr/bin/clang++-15'
displayName: Install Clang

- task: Cache@2
inputs:
key: ccache | "$(CCACHE_VERSION)" | "$(Agent.OS)" | "${{ parameters.displayName }}" | "$(Build.BuildNumber)"
restoreKeys: ccache | "$(CCACHE_VERSION)" | "$(Agent.OS)" | "${{ parameters.displayName }}"
path: $(CCACHE_DIR)
cacheHitVar: CCACHE_RESTORED
displayName: Restore CCache

- script: |
set -x
wget https://github.com/ccache/ccache/releases/download/v4.8.2/ccache-4.8.2-linux-x86_64.tar.xz
echo "0b33f39766fe9db67f40418aed6a5b3d7b2f4f7fab025a8213264b77a2d0e1b1 ccache-4.8.2-linux-x86_64.tar.xz" | sha256sum --check
tar xfv ccache-4.8.2-linux-x86_64.tar.xz
mkdir -p "$(CCACHE_DIR)/bin"
mv ./ccache-4.8.2-linux-x86_64/ccache "$(CCACHE_DIR)/bin"
echo "##vso[task.prependpath]$(CCACHE_DIR)/bin"
displayName: Install CCache
condition: ne(variables.CCACHE_RESTORED, 'true')

- script: |
set -x
cmake --version
mkdir build
cd build
cmake .. \
-GNinja \
-DCMAKE_BUILD_TYPE=${{ parameters.cmakeBuildType }} \
-DCMAKE_INSTALL_PREFIX=./install \
-DTESTS_ENABLED=ON \
-DCUDA_ARCHS=6.0
ninja
displayName: 'Configure and build'
-DCMAKE_CUDA_ARCHITECTURES=50 \
-DASAN_ENABLED=${{ parameters.asanEnabled }}
ninja -k $(numAllowedNinjaErrors)
displayName: Configure and build colmap

- ${{ if and(eq(parameters.cmakeBuildType, 'Release'), eq(parameters.asanEnabled, false)) }}:
- script: |
set -x
cd build
ninja install
cd ../doc/sample-project
mkdir build
cd build
colmap_DIR=$(Build.SourcesDirectory)/build/install/share/colmap cmake .. \
-GNinja \
-DCMAKE_CUDA_ARCHITECTURES=50
ninja
./hello_world --message "world"
displayName: Install colmap and build sample

- ${{ if ne(parameters.cmakeBuildType, 'ClangTidy') }}:
- script: |
export DISPLAY=":99.0"
export QT_QPA_PLATFORM="offscreen"
Xvfb :99 &
sleep 3
cd build
ctest -E "$(ctestExclusions)"
tests_pass=$?
if [ $tests_pass -ne 0 ]; then
echo "Tests failed, rerunning with verbose output"
ctest --rerun-failed --output-on-failure
fi
exit $tests_pass
displayName: Run tests

- ${{ if eq(parameters.e2eTestsEnabled, true) }}:
- script: |
export DISPLAY=":99.0"
export QT_QPA_PLATFORM="offscreen"
Xvfb :99 &
sleep 3
sudo apt install 7zip
mkdir eth3d_benchmark
# Error thresholds in degrees and meters,
# as the ETH3D groundtruth has metric scale.
python ./scripts/python/benchmark_eth3d.py \
--workspace_path ./eth3d_benchmark \
--colmap_path ./build/src/colmap/exe/colmap \
--dataset_names boulders,door \
--max_rotation_error 1.0 \
--max_proj_center_error 0.05
displayName: Run E2E tests

- script: |
export DISPLAY=":99.0"
export QT_QPA_PLATFORM="offscreen"
Xvfb :99 &
sleep 3
cd build
ctest -E "(feature/sift_test)|(util/opengl_utils_test)|(mvs/gpu_mat_test)"
tests_pass=$?
if [ $tests_pass -ne 0 ]; then
echo "Tests failed, rerunning with verbose output"
ctest --rerun-failed --output-on-failure
fi
exit $tests_pass
displayName: 'Run tests'
set -x
ccache --show-stats
ccache --evict-older-than 1d
ccache --show-stats
displayName: Cleanup ccache
7 changes: 5 additions & 2 deletions .azure-pipelines/build-windows-vcpkg.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ boost-graph
boost-program-options
boost-regex
boost-system
boost-test
ceres[lapack,suitesparse]
cgal
eigen3
flann
freeimage
metis
gflags
glew
glog
qt5-base
gtest
qt5-base
sqlite3
Loading