Skip to content

Commit 5d3acdc

Browse files
authored
Update CMake minimum required and Tier1 (#6274)
* Update CMake minimum required and Tier1 Signed-off-by: Raül <raulojeda@eprosima.com> * Update cmake version in workflows Signed-off-by: Raül <raulojeda@eprosima.com> * Upgrade cmakeVersion in mac and windows too Signed-off-by: Raül <raulojeda@eprosima.com> * Upgrade osrf version Signed-off-by: Raül <raulojeda@eprosima.com> * Upgrade osrf version to 2.3.0 Signed-off-by: Raül <raulojeda@eprosima.com> * Swig version change to swig4.1 Signed-off-by: Raül <raulojeda@eprosima.com> * Add GCC 13 bug workaround in tests setting error as warning in uninitialized Signed-off-by: Raül <raulojeda@eprosima.com> * Test forcing swig version and try osrf 1.5.3 Signed-off-by: Raül <raulojeda@eprosima.com> * Test forcing swig4.1 Signed-off-by: Raül <raulojeda@eprosima.com> * Fix wrong apt package Signed-off-by: Raül <raulojeda@eprosima.com> * Osrf version 1.5.2 Signed-off-by: Raül <raulojeda@eprosima.com> * Test previous gcc version Signed-off-by: Raül <raulojeda@eprosima.com> * Try fixing asan test Data Race Signed-off-by: Raül <raulojeda@eprosima.com> * Uncrustify Signed-off-by: Raül <raulojeda@eprosima.com> * Downgrade to GCC11 in alternative builds Signed-off-by: Raül <raulojeda@eprosima.com> * Go back to osrf 1.4.0 Signed-off-by: Raül <raulojeda@eprosima.com> * Fix CXX uppercase bug in ci Signed-off-by: Raül <raulojeda@eprosima.com> * GCC12 log in tsan Signed-off-by: Raül <raulojeda@eprosima.com> * Fix null-dereference in asio alternative builds Signed-off-by: Raül <raulojeda@eprosima.com> * Update apt before install Signed-off-by: Raül <raulojeda@eprosima.com> * Use osrf 2.3.0 Signed-off-by: Raül <raulojeda@eprosima.com> * Cmake clean cache on profilling tests build Signed-off-by: Raül <raulojeda@eprosima.com> * Set CXX_STANDARD as 17 in profiling tests cmakelists Signed-off-by: Raül <raulojeda@eprosima.com> * Use ubuntu 22 and gcc 12 in tsan test Signed-off-by: Raül <raulojeda@eprosima.com> * Downgrade to 3.22 because of tsan still using 3.22 Signed-off-by: Raül <raulojeda@eprosima.com> * Also downgrade in thirdparty optionparser Signed-off-by: Raül <raulojeda@eprosima.com> * Downgrade also to 3.22 in tools fds Cmakelists Signed-off-by: Raül <raulojeda@eprosima.com> --------- Signed-off-by: Raül <raulojeda@eprosima.com>
1 parent a9160e8 commit 5d3acdc

File tree

61 files changed

+309
-164
lines changed

Some content is hidden

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

61 files changed

+309
-164
lines changed

.github/workflows/nightly-ubuntu-master.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
fail-fast: false
1212
matrix:
1313
os-image:
14-
- 'ubuntu-22.04'
14+
- 'ubuntu-24.04'
1515
security:
1616
- true
1717
- false

.github/workflows/reusable-mac-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
- name: Get minimum supported version of CMake
7171
uses: eProsima/eProsima-CI/external/get-cmake@v0
7272
with:
73-
cmakeVersion: '3.22.6'
73+
cmakeVersion: '3.28.6'
7474

7575
- name: Install brew dependencies
7676
uses: eProsima/eProsima-CI/macos/install_brew_packages@v0
@@ -180,7 +180,7 @@ jobs:
180180
if: ${{ inputs.run-tests == true }}
181181
uses: eProsima/eProsima-CI/external/get-cmake@v0
182182
with:
183-
cmakeVersion: '3.22.6'
183+
cmakeVersion: '3.28.6'
184184

185185
- name: Install brew dependencies
186186
if: ${{ inputs.run-tests == true }}

.github/workflows/reusable-sanitizers-ci.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ defaults:
5858
jobs:
5959
asan_fastdds_build:
6060
if: ${{ inputs.run_asan_fastdds == true || inputs.run_asan_discovery_server == true }}
61-
runs-on: ubuntu-22.04
61+
runs-on: ubuntu-24.04
6262
steps:
6363
- name: Free disk space
6464
uses: eProsima/eProsima-CI/ubuntu/free_disk_space@v0
@@ -78,7 +78,7 @@ jobs:
7878
- name: Get minimum supported version of CMake
7979
uses: eProsima/eProsima-CI/external/get-cmake@v0
8080
with:
81-
cmakeVersion: '3.22.6'
81+
cmakeVersion: '3.28.6'
8282

8383
- name: Install apt packages
8484
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
@@ -153,7 +153,7 @@ jobs:
153153
asan_fastdds_test:
154154
if: ${{ inputs.run_asan_fastdds == true }}
155155
needs: asan_fastdds_build
156-
runs-on: ubuntu-22.04
156+
runs-on: ubuntu-24.04
157157
steps:
158158
- name: Free disk space
159159
uses: eProsima/eProsima-CI/ubuntu/free_disk_space@v0
@@ -172,7 +172,7 @@ jobs:
172172
- name: Get minimum supported version of CMake
173173
uses: eProsima/eProsima-CI/external/get-cmake@v0
174174
with:
175-
cmakeVersion: '3.22.6'
175+
cmakeVersion: '3.28.6'
176176

177177
- name: Install apt packages
178178
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
@@ -255,8 +255,10 @@ jobs:
255255
runs-on: ubuntu-22.04
256256
env:
257257
TSAN_OPTIONS: second_deadlock_stack=1 history_size=7 memory_limit_mb=5000
258-
# GCC 11.3 (Ubuntu Jammy default) produces several false positives regarding timed synchronization protocols
259-
# These issues were fixed in GCC 12 so we upgrade to that version.
258+
# GCC 13.2 (Ubuntu Noble default) produces several data races warnings
259+
# TODO: For now we keep it at GCC 12 and ubuntu 22 until we figure out what to do with them
260+
# Although hundreds of tests trigger them, these problems arise from approximately
261+
# 150 different places in ~75 files including C++ Standard Library
260262
CC: gcc-12
261263
CXX: g++-12
262264
steps:

.github/workflows/reusable-ubuntu-ci.yml

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,13 @@ jobs:
106106
- name: Get minimum supported version of CMake
107107
uses: eProsima/eProsima-CI/external/get-cmake@v0
108108
with:
109-
cmakeVersion: '3.22.6'
109+
cmakeVersion: '3.28.6'
110110

111111
- name: Install apt dependencies
112112
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
113113
with:
114114
packages: libasio-dev libtinyxml2-dev libssl-dev
115-
update: false
115+
update: true
116116
upgrade: false
117117

118118
- name: Install colcon
@@ -198,7 +198,7 @@ jobs:
198198
- name: Get minimum supported version of CMake
199199
uses: eProsima/eProsima-CI/external/get-cmake@v0
200200
with:
201-
cmakeVersion: '3.22.6'
201+
cmakeVersion: '3.28.6'
202202

203203
- name: Install apt packages
204204
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
@@ -301,12 +301,19 @@ jobs:
301301
- name: Get minimum supported version of CMake
302302
uses: eProsima/eProsima-CI/external/get-cmake@v0
303303
with:
304-
cmakeVersion: '3.24.4'
304+
cmakeVersion: '3.28.6'
305305

306306
- name: Install apt packages
307307
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
308308
with:
309-
packages: libasio-dev libtinyxml2-dev libssl-dev swig
309+
packages: libasio-dev libtinyxml2-dev libssl-dev swig4.1
310+
311+
- name: Install and configure SWIG test
312+
run: |
313+
sudo apt-get install -y swig4.1
314+
sudo update-alternatives --install /usr/bin/swig swig /usr/bin/swig4.1 100
315+
sudo update-alternatives --set swig /usr/bin/swig4.1
316+
swig -version
310317
311318
- name: Install colcon
312319
uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0
@@ -342,7 +349,7 @@ jobs:
342349
with:
343350
colcon_meta_file: ${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_build.meta
344351
colcon_build_args: ${{ inputs.colcon-args }} --packages-select fastdds_python
345-
cmake_args: '${{ env.security-cmake-flag }} ${{ inputs.cmake-args }}'
352+
cmake_args: '-DSWIG_EXECUTABLE=/usr/bin/swig4.1 ${{ env.security-cmake-flag }} ${{ inputs.cmake-args }}'
346353
cmake_args_default: ''
347354
cmake_build_type: ${{ matrix.cmake-build-type }}
348355
workspace_dependencies: ${{ github.workspace }}/install
@@ -381,12 +388,18 @@ jobs:
381388
- name: Get minimum supported version of CMake
382389
uses: eProsima/eProsima-CI/external/get-cmake@v0
383390
with:
384-
cmakeVersion: '3.24.4'
391+
cmakeVersion: '3.28.6'
385392

386393
- name: Install apt packages
387394
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
388395
with:
389-
packages: libasio-dev libtinyxml2-dev libssl-dev swig
396+
packages: libasio-dev libtinyxml2-dev libssl-dev swig4.1
397+
398+
- name: Install and configure SWIG test
399+
run: |
400+
sudo update-alternatives --install /usr/bin/swig swig /usr/bin/swig4.1 100
401+
sudo update-alternatives --set swig /usr/bin/swig4.1
402+
swig -version
390403
391404
- name: Install colcon
392405
uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0
@@ -415,7 +428,7 @@ jobs:
415428
with:
416429
colcon_meta_file: ${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_build.meta ${{ github.workspace }}/src/fastdds/.github/workflows/config/python_test.meta
417430
colcon_build_args: ${{ inputs.colcon-args }}
418-
cmake_args: '${{ env.security-cmake-flag }} ${{ inputs.cmake-args }}'
431+
cmake_args: '-DSWIG_EXECUTABLE=/usr/bin/swig4.1 ${{ env.security-cmake-flag }} ${{ inputs.cmake-args }}'
419432
cmake_args_default: ''
420433
cmake_build_type: ${{ matrix.cmake-build-type }}
421434
workspace: ${{ github.workspace }}
@@ -470,12 +483,18 @@ jobs:
470483
- name: Get minimum supported version of CMake
471484
uses: eProsima/eProsima-CI/external/get-cmake@v0
472485
with:
473-
cmakeVersion: '3.24.4'
486+
cmakeVersion: '3.28.6'
474487

475488
- name: Install apt packages
476489
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
477490
with:
478-
packages: libasio-dev libtinyxml2-dev libssl-dev swig doxygen imagemagick plantuml libenchant-2-2
491+
packages: libasio-dev libtinyxml2-dev libssl-dev swig4.1 doxygen imagemagick plantuml libenchant-2-2
492+
493+
- name: Install and configure SWIG test
494+
run: |
495+
sudo update-alternatives --install /usr/bin/swig swig /usr/bin/swig4.1 100
496+
sudo update-alternatives --set swig /usr/bin/swig4.1
497+
swig -version
479498
480499
- name: Install colcon
481500
uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0
@@ -525,7 +544,7 @@ jobs:
525544
with:
526545
colcon_meta_file: ${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_build.meta ${{ github.workspace }}/src/fastdds/.github/workflows/config/documentation.meta
527546
colcon_build_args: ${{ inputs.colcon-args }}
528-
cmake_args: '${{ env.security-cmake-flag }} ${{ inputs.cmake-args }}'
547+
cmake_args: '-DSWIG_EXECUTABLE=/usr/bin/swig4.1 ${{ env.security-cmake-flag }} ${{ inputs.cmake-args }}'
529548
cmake_args_default: ''
530549
cmake_build_type: ${{ matrix.cmake-build-type }}
531550
workspace: ${{ github.workspace }}
@@ -580,7 +599,7 @@ jobs:
580599
- name: Get minimum supported version of CMake
581600
uses: eProsima/eProsima-CI/external/get-cmake@v0
582601
with:
583-
cmakeVersion: '3.22.6'
602+
cmakeVersion: '3.28.6'
584603

585604
- name: Install apt packages
586605
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
@@ -665,13 +684,13 @@ jobs:
665684
- name: Get minimum supported version of CMake
666685
uses: eProsima/eProsima-CI/external/get-cmake@v0
667686
with:
668-
cmakeVersion: '3.22.6'
687+
cmakeVersion: '3.28.6'
669688

670689
- name: Install apt dependencies
671690
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
672691
with:
673692
packages: libasio-dev libtinyxml2-dev libssl-dev
674-
update: false
693+
update: true
675694
upgrade: false
676695

677696
- name: Install colcon
@@ -694,7 +713,7 @@ jobs:
694713
with:
695714
repository: osrf/osrf_testing_tools_cpp
696715
path: src/osrf_testing_tools_cpp
697-
ref: 1.4.0
716+
ref: 2.3.0
698717

699718
- name: OSRF testing tools build
700719
uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0
@@ -710,7 +729,7 @@ jobs:
710729
uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0
711730
with:
712731
colcon_meta_file: ${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_build.meta
713-
colcon_build_args: ${{ inputs.colcon-args }} --packages-up-to fastdds
732+
colcon_build_args: ${{ inputs.colcon-args }} --cmake-clean-cache --packages-up-to fastdds
714733
cmake_args: '-DPROFILING_TESTS=ON ${{ inputs.cmake-args }}'
715734
cmake_args_default: ${{ env.colcon-build-default-cmake-args }}
716735
cmake_build_type: ${{ matrix.cmake-build-type }}

.github/workflows/reusable-windows-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
- name: Get minimum supported version of CMake
6969
uses: eProsima/eProsima-CI/external/get-cmake@v0
7070
with:
71-
cmakeVersion: '3.22.6'
71+
cmakeVersion: '3.28.6'
7272

7373
- name: Install OpenSSL
7474
uses: eProsima/eprosima-CI/windows/install_openssl@v0
@@ -222,7 +222,7 @@ jobs:
222222
if: ${{ inputs.run-tests == true }}
223223
uses: eProsima/eProsima-CI/external/get-cmake@v0
224224
with:
225-
cmakeVersion: '3.22.6'
225+
cmakeVersion: '3.28.6'
226226

227227
- name: Install OpenSSL
228228
if: ${{ inputs.run-tests == true }}

.github/workflows/ubuntu-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
with:
6060
# It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket:
6161
# https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job.
62-
os-image: 'ubuntu-22.04'
62+
os-image: 'ubuntu-24.04'
6363
label: ${{ inputs.label || 'ubuntu-ci' }}
6464
colcon-args: ${{ inputs.colcon-args }}
6565
cmake-args: ${{ inputs.cmake-args }}

CMakeLists.txt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
###############################################################################
1616
# CMake build rules for Fast DDS
1717
###############################################################################
18-
cmake_minimum_required(VERSION 3.20)
18+
cmake_minimum_required(VERSION 3.22) # TODO 3.28
1919

2020
# Set CMAKE_BUILD_TYPE to Release by default.
2121
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
@@ -178,12 +178,7 @@ endif()
178178
string(FIND ${CMAKE_CXX_FLAGS} "-fsanitize=thread" SANITIZER_THREAD)
179179
if (${SANITIZER_THREAD} EQUAL -1)
180180
message(STATUS "Setting warnings as errors...")
181-
if(MSVC OR MSVC_IDE)
182-
add_compile_options(/WX)
183-
else()
184-
set(CMAKE_CXX_FLAGS
185-
"${CMAKE_CXX_FLAGS} -Werror")
186-
endif()
181+
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
187182
endif()
188183

189184
###############################################################################

PLATFORM_SUPPORT.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ Community members may provide assistance with these platforms.
3333

3434
|Architecture|Ubuntu Noble (24.04)|Ubuntu Jammy (22.04)|MacOS Sequoia (15)|Windows 10 (VS2019)|Windows 11 (VS2022)|Debian Buster (10)|Android 12 |Android 13 | QNX 7.1 |
3535
|------------|--------------------|--------------------|------------------|-------------------|-------------------|------------------|-----------|-----------|-----------|
36-
|amd64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] |Tier 1 [^s] |Tier 1 [^a][^s] |Tier 1 [^a][^s] |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]|
36+
|amd64 |Tier 1 [^a][^s] |Tier 3 [^a][^s] |Tier 1 [^s] |Tier 1 [^a][^s] |Tier 1 [^a][^s] |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]|
3737
|amd32 | | | |Tier 3 [^a][^s] |Tier 3 [^a][^s] | | | | |
38-
|arm64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]|
38+
|arm64 |Tier 1 [^a][^s] |Tier 3 [^a][^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]|
3939
|arm32 | |Tier 3 [^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]| |
4040

4141
More information about Platforms support and eProsima products compatibility can be found on [Fast DDS Documentation](https://fast-dds.docs.eprosima.com/en/latest/notes/versions.html#dependencies-and-compatibilities).
@@ -47,10 +47,10 @@ More information about Platforms support and eProsima products compatibility can
4747

4848
Tier 1 compilers and minimum supported versions:
4949

50-
* GCC 11.4 [^d]
50+
* GCC 13.2 [^d]
5151
* Clang 16
5252
* MSVC v142 (Visual Studio 2019)
5353

54-
[^d]: Using GCC's Thread Sanitizer flags in conjunction with GCC 11 to analyze Fast DDS threaded behavior produces
54+
[^d]: Using GCC's Thread Sanitizer flags in conjunction with GCC 13 to analyze Fast DDS threaded behavior produces
5555
false positives on some uninstrumented synchronization calls.
56-
Fast DDS's Thread Sanitizer Github Action uses GCC 12 for threading issues testing.
56+
Fast DDS's Thread Sanitizer Github Action uses GCC 12 and Ubuntu 22 for threading issues testing.

examples/cpp/benchmark/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
cmake_minimum_required(VERSION 3.20)
15+
cmake_minimum_required(VERSION 3.28)
1616

1717
project(fastdds_benchamrk_example VERSION 1 LANGUAGES CXX)
1818

examples/cpp/configuration/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
cmake_minimum_required(VERSION 3.20)
15+
cmake_minimum_required(VERSION 3.28)
1616

1717
project(fastdds_configuration_example VERSION 1 LANGUAGES CXX)
1818

0 commit comments

Comments
 (0)