@@ -3,44 +3,249 @@ name: build-pcl
33on : [push, pull_request]
44
55jobs :
6- build-pcl :
7- runs-on : ubuntu-latest
8- container :
9- image : pointcloudlibrary/env:24.04
10-
6+ gcc-build :
7+ runs-on : ubuntu-24.04
8+ strategy :
9+ fail-fast : false
10+ matrix :
11+ include :
12+ - name : ubuntu20.04-gcc
13+ image : pointcloudlibrary/env:20.04
14+ cc : gcc
15+ cxx : g++
16+ build_gpu : ON
17+ cmake_args : ' -DPCL_WARNINGS_ARE_ERRORS=ON -DCMAKE_CXX_STANDARD=14 -DCMAKE_CUDA_STANDARD=14'
18+ - name : ubuntu24.04-gcc
19+ image : pointcloudlibrary/env:24.04
20+ cc : gcc
21+ cxx : g++
22+ build_gpu : ON
23+ cmake_args : ' -DCMAKE_CXX_STANDARD=17 -DCMAKE_CUDA_STANDARD=17'
24+ container : ${{ matrix.image }}
25+ env :
26+ CC : ${{ matrix.cc }}
27+ CXX : ${{ matrix.cxx }}
28+ BUILD_GPU : ${{ matrix.build_gpu }}
29+ CMAKE_CXX_FLAGS : ' -Wall -Wextra -Wnoexcept-type'
30+ DISPLAY : ' :99.0'
1131 steps :
12- - uses : actions/checkout@v4
13-
14- - name : list free space
15- run : df -h
16-
17- - name : build with CMake
18- run : |
19- cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON . \
32+ - uses : actions/checkout@v4
33+ - name : Start Xvfb (${{ matrix.name }})
34+ run : (nohup Xvfb :99 -screen 0 1280x1024x24 -nolisten tcp -nolisten unix &)
35+ - name : Configure (${{ matrix.name }})
36+ run : |
37+ cmake -B build -S . ${{ matrix.cmake_args }} \
38+ -DCMAKE_BUILD_TYPE=MinSizeRel \
39+ -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
40+ -DPCL_ONLY_CORE_POINT_TYPES=ON \
41+ -DPCL_DISABLE_GPU_TESTS=ON \
42+ -DBUILD_simulation=ON \
43+ -DBUILD_surface_on_nurbs=ON \
44+ -DBUILD_global_tests=ON \
2045 -DBUILD_benchmarks=ON \
2146 -DBUILD_examples=ON \
22- -DBUILD_simulation=ON \
23- -DBUILD_global_tests=ON
24- make -j$(nproc)
47+ -DBUILD_tools=ON \
48+ -DBUILD_apps=ON \
49+ -DBUILD_apps_3d_rec_framework=ON \
50+ -DBUILD_apps_cloud_composer=ON \
51+ -DBUILD_apps_in_hand_scanner=ON \
52+ -DBUILD_apps_modeler=ON \
53+ -DBUILD_apps_point_cloud_editor=ON \
54+ -DBUILD_CUDA=$BUILD_GPU \
55+ -DBUILD_GPU=$BUILD_GPU \
56+ -DBUILD_cuda_io=$BUILD_GPU \
57+ -DBUILD_gpu_tracking=$BUILD_GPU \
58+ -DBUILD_gpu_surface=$BUILD_GPU
59+ cmake -B build -S .
60+ - name : Build (${{ matrix.name }})
61+ run : cmake --build build -- -j$(nproc)
62+ - name : Build tests target (${{ matrix.name }})
63+ run : cmake --build build --target tests -- -j$(nproc)
64+ - name : Run ctest (${{ matrix.name }})
65+ run : ctest --test-dir build --output-on-failure -j$(nproc)
2566
26- - name : Run unit tests
27- run : |
28- ctest --output-on-failure -j$(nproc)
67+ macos-clang :
68+ runs-on : ${{ matrix.vmimage }}
69+ strategy :
70+ fail-fast : false
71+ matrix :
72+ include :
73+ - vmimage : macOS-14
74+ osx_version : ' 14'
75+ - vmimage : macOS-15
76+ osx_version : ' 15'
77+ env :
78+ CMAKE_CXX_FLAGS : ' -Wall -Wextra -Wabi -Werror -Wno-error=deprecated-declarations'
79+ GOOGLE_TEST_DIR : ' ${{ github.workspace }}/googletest'
80+ OSX_VERSION : ${{ matrix.osx_version }}
81+ steps :
82+ - uses : actions/checkout@v4
83+ - name : Install Dependencies (macOS ${{ matrix.osx_version }})
84+ run : |
85+ brew update
86+ brew install cmake pkg-config boost eigen flann nanoflann glew libusb qhull vtk freeglut qt@5 libpcap libomp suite-sparse zlib google-benchmark cjson
87+ git clone https://github.com/abseil/googletest.git "$GOOGLE_TEST_DIR"
88+ cd "$GOOGLE_TEST_DIR" && git checkout release-1.8.1
89+ - name : Configure (macOS ${{ matrix.osx_version }})
90+ run : |
91+ cmake -B build -S . \
92+ -DCMAKE_BUILD_TYPE=MinSizeRel \
93+ -DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX${OSX_VERSION}.sdk" \
94+ -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
95+ -DGTEST_SRC_DIR="$GOOGLE_TEST_DIR/googletest" \
96+ -DGTEST_INCLUDE_DIR="$GOOGLE_TEST_DIR/googletest/include" \
97+ -DQt5_DIR="/usr/local/opt/qt@5/lib/cmake/Qt5" \
98+ -DPCL_ONLY_CORE_POINT_TYPES=ON \
99+ -DBUILD_surface_on_nurbs=ON -DUSE_UMFPACK=ON \
100+ -DBUILD_simulation=ON \
101+ -DBUILD_global_tests=ON \
102+ -DBUILD_benchmarks=ON \
103+ -DBUILD_examples=ON \
104+ -DBUILD_tools=ON \
105+ -DBUILD_apps=ON \
106+ -DBUILD_apps_3d_rec_framework=ON \
107+ -DBUILD_apps_cloud_composer=ON \
108+ -DBUILD_apps_in_hand_scanner=ON \
109+ -DBUILD_apps_modeler=ON \
110+ -DBUILD_apps_point_cloud_editor=ON \
111+ -DBoost_USE_DEBUG_RUNTIME=OFF
112+ - name : Build (macOS ${{ matrix.osx_version }})
113+ run : cmake --build build -- -j$(sysctl -n hw.ncpu)
114+ - name : Build tests target (macOS ${{ matrix.osx_version }})
115+ run : cmake --build build --target tests -- -j$(sysctl -n hw.ncpu)
116+ - name : Run ctest (macOS ${{ matrix.osx_version }})
117+ run : ctest --test-dir build --output-on-failure -j$(sysctl -n hw.ncpu)
29118
30- test-free-space-host :
31- runs-on : ubuntu-latest
119+ ubuntu-clang :
120+ runs-on : ubuntu-24.04
121+ strategy :
122+ fail-fast : false
123+ matrix :
124+ include :
125+ - name : ubuntu22.04-clang
126+ image : pointcloudlibrary/env:22.04
127+ cc : clang
128+ cxx : clang++
129+ build_gpu : OFF
130+ cmake_args : ' '
131+ container : ${{ matrix.image }}
132+ env :
133+ CC : ${{ matrix.cc }}
134+ CXX : ${{ matrix.cxx }}
135+ BUILD_GPU : ${{ matrix.build_gpu }}
136+ CMAKE_CXX_FLAGS : ' -Wall -Wextra'
137+ DISPLAY : ' :99.0'
32138 steps :
33- - name : list free space
34- run : df -h
139+ - uses : actions/checkout@v4
140+ - name : Start Xvfb (${{ matrix.name }})
141+ run : (nohup Xvfb :99 -screen 0 1280x1024x24 -nolisten tcp -nolisten unix &)
142+ - name : Configure (${{ matrix.name }})
143+ run : |
144+ cmake -B build -S . ${{ matrix.cmake_args }} \
145+ -DCMAKE_BUILD_TYPE=MinSizeRel \
146+ -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
147+ -DPCL_ONLY_CORE_POINT_TYPES=ON \
148+ -DPCL_DISABLE_GPU_TESTS=ON \
149+ -DBUILD_simulation=ON \
150+ -DBUILD_surface_on_nurbs=ON \
151+ -DBUILD_global_tests=ON \
152+ -DBUILD_benchmarks=ON \
153+ -DBUILD_examples=ON \
154+ -DBUILD_tools=ON \
155+ -DBUILD_apps=ON \
156+ -DBUILD_apps_3d_rec_framework=ON \
157+ -DBUILD_apps_cloud_composer=ON \
158+ -DBUILD_apps_in_hand_scanner=ON \
159+ -DBUILD_apps_modeler=ON \
160+ -DBUILD_apps_point_cloud_editor=ON \
161+ -DBUILD_CUDA=$BUILD_GPU \
162+ -DBUILD_GPU=$BUILD_GPU \
163+ -DBUILD_cuda_io=$BUILD_GPU \
164+ -DBUILD_gpu_tracking=$BUILD_GPU \
165+ -DBUILD_gpu_surface=$BUILD_GPU
166+ cmake -B build -S .
167+ - name : Build (${{ matrix.name }})
168+ run : cmake --build build -- -j$(nproc)
169+ - name : Build tests target (${{ matrix.name }})
170+ run : cmake --build build --target tests -- -j$(nproc)
171+ - name : Run ctest (${{ matrix.name }})
172+ run : ctest --test-dir build --output-on-failure -j$(nproc)
35173
36- test-free-space-windows :
37- runs-on : windows-latest
174+ ubuntu-indices :
175+ runs-on : ubuntu-24.04
176+ strategy :
177+ matrix :
178+ include :
179+ - name : ubuntu22.04-clang-indices
180+ image : pointcloudlibrary/env:22.04
181+ cc : clang
182+ cxx : clang++
183+ index_signed : OFF
184+ index_size : 64
185+ container : ${{ matrix.image }}
186+ env :
187+ CC : ${{ matrix.cc }}
188+ CXX : ${{ matrix.cxx }}
189+ CMAKE_CXX_FLAGS : ' -Wall -Wextra'
38190 steps :
39- - name : list free space
40- run : " fsutil volume diskfree c:"
191+ - uses : actions/checkout@v4
192+ - name : Configure (${{ matrix.name }})
193+ run : |
194+ cmake -B build -S . \
195+ -DCMAKE_BUILD_TYPE=MinSizeRel \
196+ -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
197+ -DPCL_ONLY_CORE_POINT_TYPES=ON \
198+ -DPCL_INDEX_SIGNED=${{ matrix.index_signed }} \
199+ -DPCL_INDEX_SIZE=${{ matrix.index_size }} \
200+ -DBUILD_global_tests=ON
201+ cmake -B build -S .
202+ - name : Build (${{ matrix.name }})
203+ run : cmake --build build -- -j$(nproc)
204+ - name : Build tests target (${{ matrix.name }})
205+ run : cmake --build build --target tests -- -j$(nproc)
206+ - name : Run ctest (${{ matrix.name }})
207+ run : ctest --test-dir build --output-on-failure -j$(nproc)
41208
42- test-free-space-macos :
43- runs-on : macos-latest
209+ windows-msvc :
210+ runs-on : windows-2022
211+ strategy :
212+ fail-fast : false
213+ matrix :
214+ include :
215+ - name : windows-x86
216+ architecture : x86
217+ generator : ' Visual Studio 16 2019'
218+ platform_args : ' -A Win32'
219+ image : pointcloudlibrary/env:windows2022-x86
220+ - name : windows-x64
221+ architecture : x64
222+ generator : ' Visual Studio 17 2022'
223+ platform_args : ' -A x64'
224+ image : pointcloudlibrary/env:windows2022-x64
225+ env :
226+ CONFIGURATION : Release
227+ IS_MAIN : ${{ github.ref == 'refs/heads/master' }}
44228 steps :
45- - name : list free space
46- run : df -h
229+ - uses : actions/checkout@v4
230+ - name : Docker build and test (${{ matrix.name }})
231+ shell : pwsh
232+ run : |
233+ docker pull ${{ matrix.image }}
234+ docker run --rm -v "${{ github.workspace }}:C:\src" -w C:\src `
235+ -e CONFIGURATION=$Env:CONFIGURATION -e IS_MAIN=$Env:IS_MAIN `
236+ ${{ matrix.image }} powershell -Command "`
237+ cmake -B build -S . -G \"${{ matrix.generator }}\" ${{ matrix.platform_args }} `
238+ -DVCPKG_TARGET_TRIPLET=${{ matrix.architecture }}-windows-rel `
239+ -DCMAKE_BUILD_TYPE=MinSizeRel `
240+ -DVCPKG_APPLOCAL_DEPS=ON `
241+ -DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=ON `
242+ -DBUILD_simulation=ON `
243+ -DBUILD_surface_on_nurbs=ON `
244+ -DBUILD_global_tests=ON `
245+ -DBUILD_benchmarks=$Env:IS_MAIN `
246+ -DBUILD_tools=$Env:IS_MAIN `
247+ -DPCL_DISABLE_VISUALIZATION_TESTS=ON; `
248+ cmake --build build --config $Env:CONFIGURATION; `
249+ cmake --build build --target tests --config $Env:CONFIGURATION; `
250+ ctest --test-dir build --config $Env:CONFIGURATION --output-on-failure `
251+ "
0 commit comments