Skip to content

Commit

Permalink
merge upstream master & resolve conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
AnastaZIuk committed Sep 2, 2024
2 parents 05b8e34 + 4900f66 commit 0c88afe
Show file tree
Hide file tree
Showing 1,172 changed files with 14,925 additions and 12,290 deletions.
43 changes: 22 additions & 21 deletions .ci/azure-pipelines/azure-pipelines.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ pr:
resources:
containers:
- container: winx86
image: pointcloudlibrary/env:winx86
image: pointcloudlibrary/env:windows2022-x86
- container: winx64
image: pointcloudlibrary/env:winx64
- container: env1804
image: pointcloudlibrary/env:18.04
image: pointcloudlibrary/env:windows2022-x64
- container: env2004
image: pointcloudlibrary/env:20.04
- container: env2204
image: pointcloudlibrary/env:22.04
- container: env2404
image: pointcloudlibrary/env:24.04

stages:
- stage: formatting
Expand All @@ -40,20 +40,21 @@ stages:
- job: ubuntu
displayName: Ubuntu
pool:
vmImage: 'Ubuntu 20.04'
vmImage: 'ubuntu-22.04'
strategy:
matrix:
18.04 GCC: # oldest LTS
CONTAINER: env1804
20.04 GCC: # oldest LTS
CONTAINER: env2004
CC: gcc
CXX: g++
BUILD_GPU: ON
CMAKE_ARGS: '-DPCL_WARNINGS_ARE_ERRORS=ON'
22.04 GCC: # latest Ubuntu
CONTAINER: env2204
24.04 GCC: # latest Ubuntu
CONTAINER: env2404
CC: gcc
CXX: g++
BUILD_GPU: OFF # There are currently incompatibilities between GCC 11.2 and CUDA 11.5
BUILD_GPU: ON
CMAKE_ARGS: '-DCMAKE_CXX_STANDARD=17 -DCMAKE_CUDA_STANDARD=17'
container: $[ variables['CONTAINER'] ]
timeoutInMinutes: 0
variables:
Expand All @@ -73,12 +74,12 @@ stages:
vmImage: '$(VMIMAGE)'
strategy:
matrix:
Big Sur 11:
VMIMAGE: 'macOS-11'
OSX_VERSION: '11'
Monterey 12:
VMIMAGE: 'macOS-12'
OSX_VERSION: '12'
Ventura 13:
VMIMAGE: 'macOS-13'
OSX_VERSION: '13'
timeoutInMinutes: 0
variables:
BUILD_DIR: '$(Agent.WorkFolder)/build'
Expand All @@ -95,14 +96,14 @@ stages:
dependsOn: osx
condition: succeededOrFailed()
pool:
vmImage: 'Ubuntu 20.04'
vmImage: 'ubuntu-22.04'
strategy:
matrix:
20.04 Clang:
CONTAINER: env2004
22.04 Clang:
CONTAINER: env2204
CC: clang
CXX: clang++
BUILD_GPU: ON
BUILD_GPU: OFF # There are currently incompatibilities between GCC 11.2 and CUDA 11.5 (Ubuntu 22.04)
CMAKE_ARGS: ''
container: $[ variables['CONTAINER'] ]
timeoutInMinutes: 0
Expand All @@ -118,11 +119,11 @@ stages:
dependsOn: osx
condition: succeededOrFailed()
pool:
vmImage: 'Ubuntu 20.04'
vmImage: 'ubuntu-22.04'
strategy:
matrix:
20.04 Clang:
CONTAINER: env2004
22.04 Clang:
CONTAINER: env2204
CC: clang
CXX: clang++
INDEX_SIGNED: OFF
Expand All @@ -143,7 +144,7 @@ stages:
- job: Windows
displayName: Windows Build
pool:
vmImage: 'windows-2019'
vmImage: 'windows-2022'
strategy:
matrix:
x86:
Expand Down
2 changes: 1 addition & 1 deletion .ci/azure-pipelines/build/macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ steps:
# find the commit hash on a quick non-forced update too
fetchDepth: 10
- script: |
brew install cmake pkg-config boost eigen flann glew libusb qhull vtk glew qt5 libpcap libomp google-benchmark
brew install cmake pkg-config boost eigen flann glew libusb qhull vtk glew freeglut qt5 libpcap libomp google-benchmark cjson
brew install brewsci/science/openni
git clone https://github.com/abseil/googletest.git $GOOGLE_TEST_DIR # the official endpoint changed to abseil/googletest
cd $GOOGLE_TEST_DIR && git checkout release-1.8.1
Expand Down
3 changes: 1 addition & 2 deletions .ci/azure-pipelines/build/ubuntu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ steps:
-DBUILD_GPU=$BUILD_GPU \
-DBUILD_cuda_io=$BUILD_GPU \
-DBUILD_gpu_tracking=$BUILD_GPU \
-DBUILD_gpu_surface=$BUILD_GPU \
-DBUILD_gpu_people=$BUILD_GPU
-DBUILD_gpu_surface=$BUILD_GPU
# Temporary fix to ensure no tests are skipped
cmake $(Build.SourcesDirectory)
displayName: 'CMake Configuration'
Expand Down
25 changes: 10 additions & 15 deletions .ci/azure-pipelines/env.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,26 +41,21 @@ jobs:
vmImage: 'ubuntu-latest'
strategy:
matrix:
Ubuntu 18.04:
# Test the oldest supported version of Ubuntu
UBUNTU_VERSION: 18.04
VTK_VERSION: 7
ENSENSOSDK_VERSION: 2.3.1570
TAG: 18.04
# Test the oldest supported version of Ubuntu
Ubuntu 20.04:
UBUNTU_VERSION: 20.04
VTK_VERSION: 7
TAG: 20.04
# Test the latest LTS version of Ubuntu
Ubuntu 22.04:
UBUNTU_VERSION: 22.04
VTK_VERSION: 9
TAG: 22.04
Ubuntu 22.10:
UBUNTU_VERSION: 22.10
# Test the latest LTS version of Ubuntu
Ubuntu 24.04:
UBUNTU_VERSION: 24.04
USE_LATEST_CMAKE: true
VTK_VERSION: 9
TAG: 22.10
TAG: 24.04
steps:
- script: |
dockerBuildArgs="" ; \
Expand Down Expand Up @@ -112,17 +107,17 @@ jobs:
timeoutInMinutes: 360
displayName: "Env"
pool:
vmImage: 'windows-2019'
vmImage: 'windows-2022'
strategy:
matrix:
Winx86:
PLATFORM: x86
TAG: winx86
TAG: windows2022-x86
GENERATOR: "'Visual Studio 16 2019' -A Win32"
VCPKGCOMMIT: acc3bcf76b84ae5041c86ab55fe138ae7b8255c7
VCPKGCOMMIT: f7423ee180c4b7f40d43402c2feb3859161ef625
Winx64:
PLATFORM: x64
TAG: winx64
TAG: windows2022-x64
GENERATOR: "'Visual Studio 16 2019' -A x64"
VCPKGCOMMIT: master
steps:
Expand All @@ -137,7 +132,7 @@ jobs:
-t $(dockerHubID)/env:$(TAG)
dockerfile: '$(Build.SourcesDirectory)/.dev/docker/windows/Dockerfile'
tags: "$(TAG)"

- script: >
docker run --rm -v "$(Build.SourcesDirectory)":c:\pcl $(dockerHubID)/env:$(TAG)
powershell -command "mkdir c:\pcl\build; cd c:\pcl\build;
Expand Down
5 changes: 3 additions & 2 deletions .ci/azure-pipelines/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,9 @@ stages:
# find the commit hash on a quick non-forced update too
fetchDepth: 10
- bash: |
if [ -z $RC ] || [ $RC -eq 0 ]; then isPreRelease=false; else isPreRelease=true; fi
if [ -z $RC ] || [ $RC -eq 0 ]; then isPreRelease=false; tagName="pcl-$(VERSION)"; else isPreRelease=true; tagName="pcl-$(VERSION)-rc$(RC)"; fi
echo "##vso[task.setvariable variable=isPreRelease]${isPreRelease}"
echo "##vso[task.setvariable variable=tagName]${tagName}"
- task: DownloadBuildArtifacts@0
inputs:
downloadType: 'all' # can be anything except single
Expand All @@ -223,7 +224,7 @@ stages:
releaseNotesFilePath: '$(DOWNLOAD_LOCATION)/changelog/changelog.md'
repositoryName: $(Build.Repository.Name)
tagSource: 'userSpecifiedTag'
tag: "pcl-$(VERSION)-rc$(RC)"
tag: "$(tagName)"
tagPattern: 'pcl-*'
target: '$(Build.SourceVersion)'
title: 'PCL $(VERSION)'
10 changes: 5 additions & 5 deletions .ci/azure-pipelines/ubuntu-variety.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ jobs:
displayName: "BuildUbuntuVariety"
steps:
- script: |
POSSIBLE_VTK_VERSION=("7" "9") \
POSSIBLE_VTK_VERSION=("9") \
POSSIBLE_CMAKE_CXX_STANDARD=("14" "17" "20") \
POSSIBLE_CMAKE_BUILD_TYPE=("None" "Debug" "Release" "RelWithDebInfo" "MinSizeRel") \
POSSIBLE_COMPILER_PACKAGE=("g++" "g++-10" "g++-11" "g++-12" "clang" "clang-11" "clang-12" "clang-13" "clang-14" "clang-15") \
POSSIBLE_CMAKE_C_COMPILER=("gcc" "gcc-10" "gcc-11" "gcc-12" "clang" "clang-11" "clang-12" "clang-13" "clang-14" "clang-15") \
POSSIBLE_CMAKE_CXX_COMPILER=("g++" "g++-10" "g++-11" "g++-12" "clang++" "clang++-11" "clang++-12" "clang++-13" "clang++-14" "clang++-15") \
POSSIBLE_COMPILER_PACKAGE=("g++" "g++-10" "g++-11" "g++-12" "g++-13" "g++-14" "clang libomp-dev" "clang-14 libomp-14-dev" "clang-15 libomp-15-dev" "clang-16 libomp-16-dev" "clang-17 libomp-17-dev" "clang-18 libomp-18-dev") \
POSSIBLE_CMAKE_C_COMPILER=("gcc" "gcc-10" "gcc-11" "gcc-12" "gcc-13" "gcc-14" "clang" "clang-14" "clang-15" "clang-16" "clang-17" "clang-18") \
POSSIBLE_CMAKE_CXX_COMPILER=("g++" "g++-10" "g++-11" "g++-12" "g++-13" "g++-14" "clang++" "clang++-14" "clang++-15" "clang++-16" "clang++-17" "clang++-18") \
CHOSEN_COMPILER=$[RANDOM%${#POSSIBLE_COMPILER_PACKAGE[@]}] \
dockerBuildArgs="--build-arg VTK_VERSION=${POSSIBLE_VTK_VERSION[$[RANDOM%${#POSSIBLE_VTK_VERSION[@]}]]} --build-arg CMAKE_CXX_STANDARD=${POSSIBLE_CMAKE_CXX_STANDARD[$[RANDOM%${#POSSIBLE_CMAKE_CXX_STANDARD[@]}]]} --build-arg CMAKE_BUILD_TYPE=${POSSIBLE_CMAKE_BUILD_TYPE[$[RANDOM%${#POSSIBLE_CMAKE_BUILD_TYPE[@]}]]} --build-arg COMPILER_PACKAGE=${POSSIBLE_COMPILER_PACKAGE[$CHOSEN_COMPILER]} --build-arg CMAKE_C_COMPILER=${POSSIBLE_CMAKE_C_COMPILER[$CHOSEN_COMPILER]} --build-arg CMAKE_CXX_COMPILER=${POSSIBLE_CMAKE_CXX_COMPILER[$CHOSEN_COMPILER]}" ; \
dockerBuildArgs="--build-arg VTK_VERSION=${POSSIBLE_VTK_VERSION[$[RANDOM%${#POSSIBLE_VTK_VERSION[@]}]]} --build-arg CMAKE_CXX_STANDARD=${POSSIBLE_CMAKE_CXX_STANDARD[$[RANDOM%${#POSSIBLE_CMAKE_CXX_STANDARD[@]}]]} --build-arg CMAKE_BUILD_TYPE=${POSSIBLE_CMAKE_BUILD_TYPE[$[RANDOM%${#POSSIBLE_CMAKE_BUILD_TYPE[@]}]]} --build-arg COMPILER_PACKAGE=\"${POSSIBLE_COMPILER_PACKAGE[$CHOSEN_COMPILER]}\" --build-arg CMAKE_C_COMPILER=${POSSIBLE_CMAKE_C_COMPILER[$CHOSEN_COMPILER]} --build-arg CMAKE_CXX_COMPILER=${POSSIBLE_CMAKE_CXX_COMPILER[$CHOSEN_COMPILER]}" ; \
echo "##vso[task.setvariable variable=dockerBuildArgs]$dockerBuildArgs"
displayName: "Prepare docker build arguments"
- task: Docker@2
Expand Down
2 changes: 1 addition & 1 deletion .ci/scripts/build_tutorials.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This script builds source code projects of PCL tutorials.
Options:
-h Dispaly this help and exit.
-h Display this help and exit.
-k Keep going after a configuration/build error.
-s Print summary in the end.
-e NAMES Exclude tutorials from the build.
Expand Down
2 changes: 2 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ PointerAlignment: Left
Standard: c++14
TabWidth: 2
UseTab: Never
SortIncludes: CaseInsensitive
IncludeBlocks: Regroup
IncludeCategories:
# Main PCL includes of common module should be sorted at end of PCL includes
Expand All @@ -44,6 +45,7 @@ IncludeCategories:
# Major 3rd-Party components of apps
- Regex: '^<Q[^/]+>$'
Priority: 300
CaseSensitive: true
- Regex: '^<ui_[^/]+\.h>$'
Priority: 300
- Regex: '^<vtk[^/]+\.h>$'
Expand Down
48 changes: 46 additions & 2 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
---
Checks: '-*,modernize-use-auto,modernize-deprecated-headers,modernize-redundant-void-arg,modernize-replace-random-shuffle,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-nullptr,modernize-use-override,modernize-use-using,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-type-promotion-in-math-fn,cppcoreguidelines-pro-type-cstyle-cast,cppcoreguidelines-pro-type-static-cast-downcast'
WarningsAsErrors: '-*,modernize-use-auto,modernize-deprecated-headers,modernize-redundant-void-arg,modernize-replace-random-shuffle,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-nullptr,modernize-use-override,modernize-use-using,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-type-promotion-in-math-fn,cppcoreguidelines-pro-type-cstyle-cast,cppcoreguidelines-pro-type-static-cast-downcast'
Checks: >
-*,
bugprone-copy-constructor-init,
bugprone-macro-parentheses,
cppcoreguidelines-pro-type-cstyle-cast,
cppcoreguidelines-pro-type-static-cast-downcast,
google-readability-casting,
modernize-deprecated-headers,
modernize-loop-convert,
modernize-make-unique,
modernize-redundant-void-arg,
modernize-replace-random-shuffle,
modernize-return-braced-init-list,
modernize-shrink-to-fit,
modernize-use-auto,
modernize-use-bool-literals,
modernize-use-default-member-init,
modernize-use-emplace,
modernize-use-equals-default,
modernize-use-equals-delete,
modernize-use-noexcept,
modernize-use-nullptr,
modernize-use-override,
modernize-use-using,
performance-faster-string-find,
performance-for-range-copy,
performance-implicit-conversion-in-loop,
performance-inefficient-algorithm,
performance-inefficient-vector-operation,
performance-move-const-arg,
performance-move-constructor-init,
performance-no-automatic-move,
performance-noexcept-move-constructor,
performance-type-promotion-in-math-fn,
readability-container-data-pointer,
readability-container-size-empty,
readability-delete-null-pointer,
readability-duplicate-include,
readability-redundant-declaration,
readability-redundant-smartptr-get,
readability-redundant-string-cstr,
readability-redundant-string-init,
readability-simplify-boolean-expr,
readability-simplify-subscript-expr,
WarningsAsErrors: '*'
CheckOptions:
- {key: modernize-use-auto.MinTypeNameLength, value: 7}
UseColor: true
20 changes: 16 additions & 4 deletions .dev/docker/env/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ ARG UBUNTU_VERSION=20.04

FROM "ubuntu:${UBUNTU_VERSION}"

# Eigen patch (https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1462) to fix issue metioned
# Eigen patch (https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1462) to fix issue mentioned
# in https://github.com/PointCloudLibrary/pcl/issues/3729 is available in Eigen 3.3.7.
# Not needed from 20.04 since it is the default version from apt
ARG EIGEN_MINIMUM_VERSION=3.3.7
Expand All @@ -14,7 +14,7 @@ ARG ENSENSOSDK_VERSION=3.2.489
ARG REALSENSE_VERSION=2.50.0

# Check https://packages.ubuntu.com/search?suite=all&arch=any&searchon=names&keywords=libvtk%20qt-dev
# for available packes for choosen UBUNTU_VERSION
# for available packages for chosen UBUNTU_VERSION
ARG VTK_VERSION=6

# Use the latest version of CMake by adding the Kitware repository if true,
Expand All @@ -30,14 +30,19 @@ RUN apt-get update \
clang-tidy \
libbenchmark-dev \
libblas-dev \
libboost-date-time-dev \
libboost-serialization-dev \
libboost-filesystem-dev \
libboost-iostreams-dev \
libboost-system-dev \
libcjson-dev \
libflann-dev \
libglew-dev \
freeglut3-dev \
libgtest-dev \
libomp-dev \
libopenni-dev \
libopenni2-dev \
libpcap-dev \
libproj-dev \
libqhull-dev \
libqt5opengl5-dev \
Expand All @@ -52,7 +57,14 @@ RUN apt-get update \
&& if [ "$USE_LATEST_CMAKE" = true ] ; then \
cmake_ubuntu_version=$(lsb_release -cs) ; \
if ! wget -q --method=HEAD "https://apt.kitware.com/ubuntu/dists/$cmake_ubuntu_version/Release"; then \
cmake_ubuntu_version="focal" ; \
ubuntu_version=$(lsb_release -sr) ; \
if dpkg --compare-versions ${ubuntu_version} ge 22.04; then \
cmake_ubuntu_version="jammy" ; \
elif dpkg --compare-versions ${ubuntu_version} ge 20.04; then \
cmake_ubuntu_version="focal" ; \
else \
cmake_ubuntu_version="bionic" ; \
fi ; \
fi ; \
wget -qO - https://apt.kitware.com/kitware-archive.sh | bash -s -- --release $cmake_ubuntu_version ; \
apt-get update ; \
Expand Down
2 changes: 1 addition & 1 deletion .dev/docker/perception_pcl_ros/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ COPY ${flavor}_rosinstall.yaml ${workspace}/src/.rosinstall

# Be careful:
# * ROS uses Python2
# * source ROS setup file in evey RUN snippet
# * source ROS setup file in every RUN snippet
#
# The dependencies of PCL can be reduced since
# * we don't need to build visualization or docs
Expand Down
2 changes: 1 addition & 1 deletion .dev/docker/perception_pcl_ros/colcon.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ ARG workspace="/root/catkin_ws"
COPY ${flavor}_rosinstall.yaml ${workspace}/src/.rosinstall

# Be careful:
# * source ROS setup file in evey RUN snippet
# * source ROS setup file in every RUN snippet
#
# TODO: The dependencies of PCL can be reduced since
# * we don't need to build visualization or docs
Expand Down
Loading

0 comments on commit 0c88afe

Please sign in to comment.