Skip to content

Commit 34f3c02

Browse files
committed
Add eprosima flags options
Signed-off-by: Raul Sanchez-Mateos <raul@eprosima.com>
1 parent c0ac7c9 commit 34f3c02

4 files changed

Lines changed: 75 additions & 20 deletions

File tree

multiplatform/colcon_build/action.yml

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,21 @@ inputs:
1818
required: false
1919
default: '--event-handlers=console_direct+'
2020

21-
cmake_args:
22-
description: CMake arguments
21+
set_eprosima_flags:
22+
description: |
23+
This flag sets the compilation flags (CMAKE_CXX_FLAGS) for eProsima product testing.
24+
These are:
25+
- Warnigs as errors
26+
- Linux: -Werror -Wall
27+
- Windows: /WX /W4
28+
- Multithreaded compilation
29+
- Windows: /MP
30+
type: boolean
2331
required: false
24-
default: ''
32+
default: true
2533

26-
cmake_args_default:
27-
description: Default CMake arguments
34+
cmake_args:
35+
description: CMake arguments
2836
required: false
2937
default: ''
3038

@@ -55,7 +63,7 @@ runs:
5563
colcon_build_args: ${{ inputs.colcon_build_args }}
5664
colcon_build_args_default: ${{ inputs.colcon_build_args_default }}
5765
cmake_args: ${{ inputs.cmake_args }}
58-
cmake_args_default: ${{ inputs.cmake_args_default }}
66+
set_eprosima_flags: ${{ inputs.set_eprosima_flags }}
5967
workspace: ${{ inputs.workspace }}
6068
workspace_dependencies: ${{ inputs.workspace_dependencies }}
6169
cmake_build_type: ${{ inputs.cmake_build_type }}
@@ -69,7 +77,7 @@ runs:
6977
colcon_build_args_default: ${{ inputs.colcon_build_args_default }}
7078
cmake_args: ${{ inputs.cmake_args }}
7179
# TODO (jparisu) find a way to use it for windows, as there is not a common Werror flag for both
72-
cmake_args_default: ${{ inputs.cmake_args_default }}
80+
set_eprosima_flags: ${{ inputs.set_eprosima_flags }}
7381
workspace: ${{ inputs.workspace }}
7482
workspace_dependencies: ${{ inputs.workspace_dependencies }}
7583
cmake_build_type: ${{ inputs.cmake_build_type }}

multiplatform/colcon_build_test/action.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ inputs:
1212
required: false
1313
default: ''
1414

15+
set_eprosima_flags:
16+
description: |
17+
This flag sets the compilation flags (CMAKE_CXX_FLAGS) for eProsima product testing.
18+
These are:
19+
- Warnigs as errors
20+
- Linux: -Werror -Wall
21+
- Windows: /WX /W4
22+
- Multithreaded compilation
23+
- Windows: /MP
24+
type: boolean
25+
required: false
26+
default: true
27+
1528
cmake_args:
1629
description: 'Cmake arguments'
1730
required: false
@@ -52,6 +65,7 @@ runs:
5265
colcon_meta_file: ${{ inputs.colcon_meta_file }}
5366
colcon_build_args: '--packages-up-to ${{ inputs.packages_names }}'
5467
cmake_args: ' ${{ inputs.cmake_args }}'
68+
set_eprosima_flags: ' ${{ inputs.set_eprosima_flags }}'
5569
workspace: ${{ inputs.workspace }}
5670
workspace_dependencies: ${{ inputs.workspace_dependencies }}
5771
cmake_build_type: ${{ inputs.cmake_build_type }}

ubuntu/colcon_build/action.yml

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,20 @@ inputs:
1818
required: false
1919
default: '--event-handlers=console_direct+'
2020

21+
set_eprosima_flags:
22+
description: |
23+
This flag sets the compilation flags (CMAKE_CXX_FLAGS) for eProsima product testing.
24+
These are:
25+
- Warnigs as errors (-Werror -Wall)
26+
type: boolean
27+
required: false
28+
default: true
29+
2130
cmake_args:
2231
description: 'CMake arguments'
2332
required: false
2433
default: ''
2534

26-
cmake_args_default:
27-
description: Default CMake arguments
28-
required: false
29-
default: '-DCMAKE_CXX_FLAGS="-Werror -Wall"'
30-
3135
cmake_build_type:
3236
description: Set the cmake build type
3337
required: false
@@ -43,6 +47,10 @@ inputs:
4347
required: false
4448
default: ''
4549

50+
env:
51+
52+
EPROSIMA_CXX_FLAGS: "-DCMAKE_CXX_FLAGS='-Werror -Wall'"
53+
4654
runs:
4755
using: composite
4856
steps:
@@ -52,6 +60,15 @@ runs:
5260
5361
echo "::group::Compile using colcon ${{ inputs.workspace }}"
5462
63+
if [ "${{ inputs.set_eprosima_flags }}" = "true" ]; then
64+
# EPROSIMA_CXX_FLAGS is set first so that it can be overridden by cmake_args
65+
# in case the user wants to set its own flags. If that's the case and the user want's to use both flags,
66+
# it should set EPROSIMA_CXX_FLAGS in cmake_args.
67+
export CMAKE_ARGS="${EPROSIMA_CXX_FLAGS} ${{ inputs.cmake_args }}"
68+
else
69+
export CMAKE_ARGS="${{ inputs.cmake_args }}"
70+
fi
71+
5572
if [[ ! -z "${{ inputs.workspace_dependencies }}" ]]; then
5673
source ${{ inputs.workspace_dependencies }}/setup.bash
5774
fi
@@ -71,8 +88,7 @@ runs:
7188
${{ inputs.colcon_build_args }} \
7289
--cmake-args \
7390
-DCMAKE_BUILD_TYPE=${{ inputs.cmake_build_type }} \
74-
${{ inputs.cmake_args_default }} \
75-
${{ inputs.cmake_args }}
91+
${CMAKE_ARGS}
7692
7793
if [[ -z "${{ inputs.colcon_meta_file }}" ]]; then
7894
rm colcon.meta

windows/colcon_build/action.yml

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@ inputs:
1818
required: false
1919
default: '--event-handlers=console_direct+'
2020

21-
cmake_args:
22-
description: CMake arguments
21+
set_eprosima_flags:
22+
description: |
23+
This flag sets the compilation flags (CMAKE_CXX_FLAGS) for eProsima product testing.
24+
These are:
25+
- Warnigs as errors (/WX /W4)
26+
type: boolean
2327
required: false
24-
default: ''
28+
default: true
2529

26-
cmake_args_default:
27-
description: Default CMake arguments
30+
cmake_args:
31+
description: CMake arguments
2832
required: false
2933
default: ''
3034

@@ -43,6 +47,10 @@ inputs:
4347
required: false
4448
default: ''
4549

50+
env:
51+
52+
EPROSIMA_CXX_FLAGS: "-DCMAKE_CXX_FLAGS='/WX /W4'"
53+
4654
runs:
4755
using: composite
4856
steps:
@@ -53,6 +61,15 @@ runs:
5361
5462
"::group::Build using colcon"
5563
64+
if (${{ inputs.set_eprosima_flags }}) {
65+
# EPROSIMA_CXX_FLAGS is set first so that it can be overridden by cmake_args
66+
# in case the user wants to set its own flags. If that's the case and the user want's to use both flags,
67+
# it should set EPROSIMA_CXX_FLAGS in cmake_args.
68+
$env:CMAKE_ARGS = $env:EPROSIMA_CXX_FLAGS + " " + ${{ inputs.cmake_args }}
69+
} else {
70+
$env:CMAKE_ARGS = ${{ inputs.cmake_args }}
71+
}
72+
5673
if (! [string]::IsNullOrEmpty("${{ inputs.workspace_dependencies }}")) {
5774
${{ inputs.workspace_dependencies }}/setup.ps1
5875
}
@@ -82,7 +99,7 @@ runs:
8299
${{ inputs.colcon_build_args_default }} `
83100
${{ inputs.colcon_build_args }} `
84101
--cmake-args `
85-
-DCMAKE_BUILD_TYPE=${{ inputs.cmake_build_type }} ${{ inputs.cmake_args_default }} ${{ inputs.cmake_args }}
102+
-DCMAKE_BUILD_TYPE=${{ inputs.cmake_build_type }} $env:CMAKE_ARGS
86103
87104
cd -
88105

0 commit comments

Comments
 (0)