Skip to content

Commit bb0497d

Browse files
Initial code release for CVPR'23 PoBA paper.
1 parent 0762f36 commit bb0497d

File tree

111 files changed

+12540
-8484
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+12540
-8484
lines changed

.clang-tidy

+8-8
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,27 @@ CheckOptions:
2323
- key: readability-identifier-naming.ParameterCase
2424
value: lower_case
2525
- key: readability-identifier-naming.ParameterIgnoredRegexp
26-
value: '[A-Z]|Q[12]T.*|[JH]_.*|J[an]|T_[a-z]+_[a-z]+.*'
26+
value: '[A-Z]|Q[12]T.*|[JH][pl]*_.*|J[an]|T_[a-z]+_[a-z]+.*'
2727
- key: readability-identifier-naming.VariableCase
2828
value: lower_case
2929
- key: readability-identifier-naming.VariableIgnoredRegexp
30-
value: '[A-Z]|Q[12]T.*|[JH]_.*|J[an]|T_[a-z]+_[a-z]+.*'
30+
value: '[A-Z]|Q[12]T.*|[JH][pl]*_.*|[JH]_.*|J[an]|T_[a-z]+_[a-z]+.*'
3131
- key: readability-identifier-naming.MemberCase
3232
value: lower_case
3333
- key: readability-identifier-naming.PublicMemberCase
3434
value: lower_case
3535
- key: readability-identifier-naming.PublicMemberIgnoredRegexp
36-
value: '[A-Z]|Q[12]T.*|[JH]_.*|J[an]|T_[a-z]+_[a-z]+.*|_meta.*'
36+
value: '[A-Z]|Q[12]T.*|[JH][pl]*_.*|J[an]|T_[a-z]+_[a-z]+.*|_meta.*'
3737
- key: readability-identifier-naming.ProtectedMemberCase
3838
value: lower_case
3939
- key: readability-identifier-naming.ProtectedMemberSuffix
4040
value: _
4141
- key: readability-identifier-naming.ProtectedMemberIgnoredRegexp
42-
value: '[A-Z]|Q[12]T.*|[JH]_.*|J[an]|T_[a-z]+_[a-z]+.*|_meta.*'
42+
value: '[A-Z]|Q[12]T.*|[JH][pl]*_.*|J[an]|T_[a-z]+_[a-z]+.*|_meta.*'
4343
- key: readability-identifier-naming.PrivateMemberCase
4444
value: lower_case
4545
- key: readability-identifier-naming.PrivateMemberIgnoredRegexp
46-
value: '[A-Z]|Q[12]T.*|[JH]_.*|J[an]|T_[a-z]+_[a-z]+.*|_meta.*'
46+
value: '[A-Z]|Q[12]T.*|[JH][pl]*_.*|J[an]|T_[a-z]+_[a-z]+.*|_meta.*'
4747
- key: readability-identifier-naming.PrivateMemberSuffix
4848
value: _
4949

@@ -53,7 +53,7 @@ CheckOptions:
5353
- key: readability-identifier-naming.MethodCase
5454
value: lower_case
5555
- key: readability-identifier-naming.MethodIgnoredRegexp
56-
value: '_accept.*|_load|_print|_meta.*|.*_Hb|add_Q[12]T.*|.*Q[12]T.*|.*_J[pl].*'
56+
value: '_accept.*|_load|_print|_meta.*|.*[QHJR].*'
5757

5858
# Constants
5959
- key: readability-identifier-naming.ConstantPrefix
@@ -71,13 +71,13 @@ CheckOptions:
7171
- key: readability-identifier-naming.ConstantParameterCase
7272
value: lower_case
7373
- key: readability-identifier-naming.ConstantParameterIgnoredRegexp
74-
value: 'Q[12]T.*|[JH]_.*|T_[a-z]+_[a-z]+.*'
74+
value: '[A-Z]|Q[12]T.*|[JH][pl]*_.*|J[an]|T_[a-z]+_[a-z]+.*'
7575
- key: readability-identifier-naming.LocalConstantParameterPrefix
7676
value: ''
7777
- key: readability-identifier-naming.LocalConstantCase
7878
value: lower_case
7979
- key: readability-identifier-naming.LocalConstantIgnoredRegexp
80-
value: 'Q[12]T.*|[JH]_.*|T_[a-z]+_[a-z]+.*'
80+
value: '[A-Z]|Q[12]T.*|[JH][pl]*_.*|J[an]|T_[a-z]+_[a-z]+.*'
8181
- key: readability-identifier-naming.ConstexprVariablePrefix
8282
value: ''
8383
- key: readability-identifier-naming.ConstexprVariableCase

.gitlab-ci.yml

+75-26
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ docker-ci-image:
3737
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
3838
- cd ci/docker
3939
- >
40-
FIRST=1; for tag in 20.04 18.04; do
40+
FIRST=1; for tag in 22.04 20.04; do
4141
# fetches the latest image for cache (not failing if image is not found)
4242
docker pull $IMAGE:$tag || true
4343
docker build --pull --cache-from $IMAGE:$tag -f Dockerfile_$tag -t $IMAGE:$tag .
@@ -90,54 +90,90 @@ source-format:
9090
########################################################################
9191
### Ubuntu builds
9292

93-
focal-relwithdebinfo-build:
93+
jammy-relwithdebinfo-build:
94+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:22.04
95+
variables:
96+
CC: gcc-11
97+
CXX: g++-11
9498
<<: *prepare_docker_definition
9599
<<: *compile_and_test_definition
96100

97-
focal-release-build:
101+
jammy-gcc12-relwithdebinfo-build:
102+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:22.04
103+
variables:
104+
CC: gcc-12
105+
CXX: g++-12
98106
<<: *prepare_docker_definition
99107
<<: *compile_and_test_definition
100-
only:
101-
- master
102-
- ci-test
103-
variables:
104-
BUILD_TYPE: Release
105108

106-
focal-debug-build:
109+
jammy-gcc12-werror-debug-build:
110+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:22.04
107111
<<: *prepare_docker_definition
108112
<<: *compile_and_test_definition
109-
only:
110-
- master
111-
- ci-test
112113
variables:
114+
ROOTBA_CXXFLAGS: "-Werror"
113115
BUILD_TYPE: CiDebug
114116

115-
focal-werror-debug-build:
117+
jammy-gcc12-werror-release-build:
118+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:22.04
116119
<<: *prepare_docker_definition
117120
<<: *compile_and_test_definition
118121
variables:
119122
ROOTBA_CXXFLAGS: "-Werror"
120-
BUILD_TYPE: CiDebug
123+
BUILD_TYPE: Release
121124

122-
focal-werror-release-build:
125+
jammy-clang16-werror-build:
126+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:22.04
123127
<<: *prepare_docker_definition
124128
<<: *compile_and_test_definition
125129
variables:
130+
CC: clang-16
131+
CXX: clang++-16
126132
ROOTBA_CXXFLAGS: "-Werror"
133+
134+
jammy-clang-tidy-build:
135+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:22.04
136+
<<: *prepare_docker_definition
137+
variables:
138+
CC: clang-16
139+
CXX: clang++-16
140+
script:
141+
- cmake --version
142+
- source ./ci/scripts/install-dependencies.sh
143+
- time ./scripts/build-external.sh ${BUILD_TYPE}
144+
- time ./scripts/build-rootba.sh ${BUILD_TYPE}
145+
- cd build && ctest --output-on-failure || true # allow test failure
146+
- cd ..
147+
- ./scripts/clang-tidy-all.sh
148+
allow_failure: true # TODO: fix clang-tidy errors
149+
150+
focal-relwithdebinfo-build:
151+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:20.04
152+
<<: *prepare_docker_definition
153+
<<: *compile_and_test_definition
154+
155+
focal-release-build:
156+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:20.04
157+
<<: *prepare_docker_definition
158+
<<: *compile_and_test_definition
159+
only:
160+
- master
161+
- ci-test
162+
variables:
127163
BUILD_TYPE: Release
128164

129-
focal-clang10-werror-build:
165+
focal-debug-build:
166+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:20.04
130167
<<: *prepare_docker_definition
131168
<<: *compile_and_test_definition
132169
only:
133170
- master
134171
- ci-test
135172
variables:
136-
CC: clang-10
137-
CXX: clang++-10
138-
ROOTBA_CXXFLAGS: "-Werror"
173+
BUILD_TYPE: CiDebug
139174

140175
focal-gcc10-werror-build:
176+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:20.04
141177
<<: *prepare_docker_definition
142178
<<: *compile_and_test_definition
143179
only:
@@ -149,6 +185,7 @@ focal-gcc10-werror-build:
149185
ROOTBA_CXXFLAGS: "-Werror"
150186

151187
focal-asan-build:
188+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:20.04
152189
<<: *prepare_docker_definition
153190
<<: *compile_and_test_definition
154191
only:
@@ -160,6 +197,7 @@ focal-asan-build:
160197
ASAN_OPTIONS: "detect_leaks=0"
161198

162199
focal-latest-tbb-build:
200+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:20.04
163201
<<: *prepare_docker_definition
164202
<<: *compile_and_test_definition
165203
only:
@@ -169,22 +207,18 @@ focal-latest-tbb-build:
169207
UBUNTU_INSTALL_LATEST_TBB: "1"
170208
TBB_ROOT: /opt/intel/tbb
171209

172-
bionic-relwithdebinfo-build:
173-
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:18.04
174-
<<: *prepare_docker_definition
175-
<<: *compile_and_test_definition
176-
177-
178210
focal-clang-tidy-build:
211+
image: $CI_REGISTRY_IMAGE/ubuntu-ci-rootba:20.04
179212
<<: *prepare_docker_definition
180213
script:
181214
- cmake --version
182215
- source ./ci/scripts/install-dependencies.sh
183216
- time ./scripts/build-external.sh ${BUILD_TYPE}
184217
- time ./scripts/build-rootba.sh ${BUILD_TYPE}
185-
- cd build && ctest --output-on-failure
218+
- cd build && ctest --output-on-failure || true # allow test failure
186219
- cd ..
187220
- ./scripts/clang-tidy-all.sh
221+
allow_failure: true # TODO: fix clang-tidy errors
188222

189223

190224
########################################################################
@@ -215,3 +249,18 @@ catalina-brewclang-asan-build:
215249
BUILD_TYPE: SanitizerRelWithDebInfo
216250
# don't activate leak sanitizer; seems to give false positives in system libs...
217251
# ASAN_OPTIONS: "detect_leaks=1"
252+
253+
bigsur-relwithdebinfo-build:
254+
<<: *compile_and_test_definition
255+
tags: [macos, "11", x86_64]
256+
257+
monterey-arm-relwithdebinfo-build:
258+
<<: *compile_and_test_definition
259+
tags: [macos, "12", arm64]
260+
261+
monterey-arm-brewclang-relwithdebinfo-build:
262+
<<: *compile_and_test_definition
263+
tags: [macos, "12", arm64]
264+
variables:
265+
CC: /opt/homebrew/opt/llvm/bin/clang
266+
CXX: /opt/homebrew/opt/llvm/bin/clang++

AUTHORS

+2
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
Nikolaus Demmel
2+
Simon Weber
3+
Tin Chon Chan

CHANGELOG

+6-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
## [0.10.0] - 2023-06-18
10+
### Added
11+
- Open source release of the PoBA implementation for CVPR 2023.
12+
913
## [0.9.0] - 2021-05-31
1014
### Added
1115
- Open source release of the RootBA project for CVPR 2021.
1216

13-
[Unreleased]: https://github.com/NikolausDemmel/compare/v0.9.0...HEAD
17+
[Unreleased]: https://github.com/NikolausDemmel/rootba/compare/v0.10.0...HEAD
18+
[0.10.0]: https://github.com/NikolausDemmel/rootba/compare/v0.9.0...v0.10.0
1419
[0.9.0]: https://github.com/NikolausDemmel/rootba/releases/tag/v0.9.0

CMakeLists.txt

+14-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,20 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
9595
# alignment. TLDR: Passing arch=native for all build types is currently the only
9696
# viable option to avoid suble bugs with Eigen.
9797
if(NOT CXX_MARCH)
98-
set(CXX_MARCH native)
98+
if(NOT APPLE OR NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
99+
set(CXX_MARCH native)
100+
else()
101+
# NOTE: Newer versions of Clang / AppleClang support -march=native on Apple Silicon,
102+
# so at some point we can remove this workaround.
103+
message(STATUS "Running on Apple ${CMAKE_SYSTEM_PROCESSOR}. Not defaulting to -march=native.")
104+
set(CXX_MARCH "")
105+
endif()
106+
endif()
107+
108+
if(CXX_MARCH)
109+
set(ROOTBA_MARCH_FLAG "-march=${CXX_MARCH}")
110+
else()
111+
set(ROOTBA_MARCH_FLAG "")
99112
endif()
100113

101114
# setup targets for dependencies

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
BSD 3-Clause License
22

3-
Copyright (c) 2021, Nikolaus Demmel.
3+
Copyright (c) 2021-2023, Nikolaus Demmel.
44
All rights reserved.
55

66
Redistribution and use in source and binary forms, with or without

0 commit comments

Comments
 (0)