no support for old PCL

This commit is contained in:
k.koide 2024-04-02 15:35:00 +09:00
parent ef1737320a
commit 135d073dcd
10 changed files with 99 additions and 6 deletions

View File

@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
DISTRO: [jammy, focal]
DISTRO: [noble, jammy, focal]
TOOLCHAIN: [gcc, llvm]
steps:
@ -35,7 +35,7 @@ jobs:
- name: Docker build
uses: docker/build-push-action@v2
with:
file: ${{github.workspace}}/docker/Dockerfile.${{ matrix.TOOLCHAIN }}
file: ${{github.workspace}}/docker/Dockerfile.build.${{ matrix.TOOLCHAIN }}
build-args: BASE_IMAGE=ubuntu:${{ matrix.DISTRO }}
context: .
push: false

35
.github/workflows/test.yml vendored Normal file
View File

@ -0,0 +1,35 @@
name: Build
on:
push:
branches: [ master ]
paths-ignore: '**.md'
pull_request:
branches: [ master ]
paths-ignore: '**.md'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.GH_PAT }}
submodules: recursive
- name: Install Dependencies
run: |
sudo apt-get -y update
sudo apt-get install -y build-essential cmake python3-pip pybind11-dev libeigen3-dev libfmt-dev libtbb-dev libomp-dev libpcl-dev libgtest-dev
- name: Build
run: |
mkdir build && cd build
cmake .. -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_BENCHMARKS=ON -DBUILD_WITH_TBB=ON -DBUILD_WITH_PCL=ON
cmake --build . -j$(nproc)
ctest -j$(nproc)

View File

@ -17,7 +17,7 @@ If you find this package useful for your project, please consider leaving a comm
## Requirements
This library uses some C++17 features. While porting it to older environments should be easy, we have no plan to support environments older than Ubuntu 20.04.
This library uses some C++17 features. The PCL interface is not compatible with PCL older than 1.11 that uses `boost::shared_ptr`. While porting this package to older environments should be easy, we have no plan to support environments older than Ubuntu 22.04.
## Dependencies

View File

@ -0,0 +1,23 @@
ARG BASE_IMAGE
FROM ${BASE_IMAGE}
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --no-install-recommends -y \
&& apt-get install --no-install-recommends -y \
wget nano build-essential git cmake \
libeigen3-dev libfmt-dev libtbb-dev libomp-dev libgtest-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY . /root/small_gicp
WORKDIR /root/small_gicp/build
RUN rm -rf ./*
RUN cmake .. -DBUILD_WITH_TBB=ON
RUN cmake --build . -j$(nproc)
WORKDIR /
CMD ["bash"]

View File

@ -0,0 +1,33 @@
ARG BASE_IMAGE
FROM ${BASE_IMAGE}
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --no-install-recommends -y \
&& apt-get install --no-install-recommends -y \
wget nano build-essential git cmake \
libeigen3-dev libfmt-dev libtbb-dev libomp-dev libgtest-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install --no-install-recommends -y \
&& apt-get install --no-install-recommends -y \
clang lld \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN update-alternatives --install /usr/bin/ld ld /usr/bin/ld.lld 50
ENV CC=clang
ENV CXX=clang++
COPY . /root/small_gicp
WORKDIR /root/small_gicp/build
RUN rm -rf ./*
RUN cmake .. -DBUILD_WITH_TBB=ON
RUN cmake --build . -j$(nproc)
WORKDIR /
CMD ["bash"]

View File

@ -1,4 +1,6 @@
FROM ubuntu:jammy
ARG BASE_IMAGE
FROM ${BASE_IMAGE}
ENV DEBIAN_FRONTEND=noninteractive

View File

@ -13,6 +13,8 @@ namespace traits {
template <typename PointType>
struct Traits<pcl::PointCloud<PointType>> {
static_assert(std::is_same_v<pcl::shared_ptr<void>, std::shared_ptr<void>>, "Old PCL version detected. Please update PCL to 1.11 or later.");
using Points = pcl::PointCloud<PointType>;
static size_t size(const Points& points) { return points.size(); }

View File

@ -1,5 +1,4 @@
#include <random>
#include <ranges>
#include <gtest/gtest.h>
#include <pcl/point_types.h>

View File

@ -1,7 +1,6 @@
#include <gtest/gtest.h>
#include <random>
#include <ranges>
#include <small_gicp/points/point_cloud.hpp>
#include <small_gicp/pcl/pcl_point.hpp>
#include <small_gicp/pcl/pcl_point_traits.hpp>