PCL Build Action
ActionsAn action for building CMake projects that uses Point Cloud Library (PCL), VTK and/or QT dependencies.
This action uses a pre-compiled pcl-docker-alpine image with aditional developer tools for compilation. This Action provides a Docker container environment with the installation of the Point Cloud Library (PCL), VTK, Boost, Eigen, Flann and OpenGL.
The GITHUB_WORKSPACE repository is mounted into the docker container where a cmake command compiles the project in a build/ directory. After the compiling process is done, the build folder remain in the GITHUB_WORKSPACE repository.
Note:
This action assumes that the main CMakeLists.txt file is located at the top level (root) of the repository.
Docker Image installed libraries:
| Package | Version | Description |
|---|---|---|
| VTK | 9.1.0 | The Visualization Toolkit |
| PCL | 1.12.1 | The Point Cloud Library (PCL) |
| Eigen | 3.7.7 | Eigen is a library of template headers for linear algebra |
| Flann | 1.9.1 | Fast Library for Approximate Nearest Neighbors |
| Boost | 1.77.0 | Provides support for linear algebra, pseudorandom number generation, multithreading |
| OpenGL | 21.2.6 | Programming interface for rendering 2D and 3D vector graphics. |
Docker Image compiled modules for PCL:
The following subsystems were built:
-- common
-- kdtree
-- octree
-- search
-- geometry
-- io
-- visualization
-- sample_consensus
-- filters
-- 2d
-- features
-- ml
-- segmentation
-- surface
-- registration
-- keypoints
-- tracking
-- recognition
-- stereo
-- apps
-- benchmarks: Disabled by default
-- outofcore
-- examples: Code examples are disabled by default.
-- people
-- simulation
-- global_tests: Disabled by default
-- tools
Docker Image installed dev tools:
| Package | Version | Description |
|---|---|---|
| CMake | 3.21.3 | Software for build automation |
| build-base | 0.4-r1 | Meta package with gcc, g++, make |
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: PCL Build Action
uses: danielTobon43/PCL-Build-Action@v1
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: PCL Build Action
uses: danielTobon43/PCL-Build-Action@v1
with:
build_type: Release (Release, Debug, RelWithDebInfo, etc.)
To provide CMake ARGS to the build process such as: CMAKE_CXX_COMPILER, CMAKE_INSTALL_PREFIX, etc. Check the feat-cmake-flags branch.
More information about usage, here
PCL 1.12.1 has AVX CPU support. Make sure your development environment supports AVX instructions. If not, you must provide the -mno-avx flag in your CMakeLists.txt file or the appropriate flags for your application, see these posts:
e.g.
target_compile_options(${PROJECT_NAME} PRIVATE -Wno-cpp
-mmmx
-msse
-msse2
-msse3
-mssse3
-msse4.2
-msse4.1
-mno-sse4a
-mno-avx
-mno-avx2
-mno-fma
-mno-fma4
-mno-f16c
-mno-xop
-mno-bmi
-mno-bmi2
-mrdrnd
-mno-3dnow
-mlzcnt
-mfsgsbase
-mpclmul
)
PCL Build Action is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

