From 2848b4a0250681b4f185e59ababa76821a6275b7 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 5 Feb 2025 11:39:16 +0000 Subject: [PATCH] Use global cmake macros --- ackermann_steering_controller/CMakeLists.txt | 12 ++--- admittance_controller/CMakeLists.txt | 12 ++--- bicycle_steering_controller/CMakeLists.txt | 12 ++--- diff_drive_controller/CMakeLists.txt | 12 ++--- effort_controllers/CMakeLists.txt | 12 ++--- .../CMakeLists.txt | 12 ++--- forward_command_controller/CMakeLists.txt | 12 ++--- gpio_controllers/CMakeLists.txt | 12 ++--- gripper_controllers/CMakeLists.txt | 12 ++--- imu_sensor_broadcaster/CMakeLists.txt | 12 ++--- joint_state_broadcaster/CMakeLists.txt | 12 ++--- joint_trajectory_controller/CMakeLists.txt | 12 ++--- mecanum_drive_controller/CMakeLists.txt | 12 ++--- parallel_gripper_controller/CMakeLists.txt | 8 ++-- pid_controller/CMakeLists.txt | 12 ++--- pose_broadcaster/CMakeLists.txt | 12 ++--- position_controllers/CMakeLists.txt | 12 ++--- range_sensor_broadcaster/CMakeLists.txt | 12 ++--- ros2_controllers.cmake | 44 +++++++++++++++++++ steering_controllers_library/CMakeLists.txt | 12 ++--- tricycle_controller/CMakeLists.txt | 12 ++--- tricycle_steering_controller/CMakeLists.txt | 12 ++--- velocity_controllers/CMakeLists.txt | 12 ++--- 23 files changed, 110 insertions(+), 194 deletions(-) create mode 100644 ros2_controllers.cmake diff --git a/ackermann_steering_controller/CMakeLists.txt b/ackermann_steering_controller/CMakeLists.txt index 2f160fd4c5..109fe1baad 100644 --- a/ackermann_steering_controller/CMakeLists.txt +++ b/ackermann_steering_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(ackermann_steering_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() # find dependencies set(THIS_PACKAGE_INCLUDE_DEPENDS diff --git a/admittance_controller/CMakeLists.txt b/admittance_controller/CMakeLists.txt index a068239c17..0a6812f261 100644 --- a/admittance_controller/CMakeLists.txt +++ b/admittance_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(admittance_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS angles diff --git a/bicycle_steering_controller/CMakeLists.txt b/bicycle_steering_controller/CMakeLists.txt index 2e88e9e70a..52c5f8421e 100644 --- a/bicycle_steering_controller/CMakeLists.txt +++ b/bicycle_steering_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(bicycle_steering_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() # find dependencies set(THIS_PACKAGE_INCLUDE_DEPENDS diff --git a/diff_drive_controller/CMakeLists.txt b/diff_drive_controller/CMakeLists.txt index c5f4ade8a6..79dc3b0bf0 100644 --- a/diff_drive_controller/CMakeLists.txt +++ b/diff_drive_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(diff_drive_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS control_toolbox diff --git a/effort_controllers/CMakeLists.txt b/effort_controllers/CMakeLists.txt index 60cce95e28..b92bd6c311 100644 --- a/effort_controllers/CMakeLists.txt +++ b/effort_controllers/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(effort_controllers) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS forward_command_controller diff --git a/force_torque_sensor_broadcaster/CMakeLists.txt b/force_torque_sensor_broadcaster/CMakeLists.txt index be54c3bd58..ce56963dc8 100644 --- a/force_torque_sensor_broadcaster/CMakeLists.txt +++ b/force_torque_sensor_broadcaster/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(force_torque_sensor_broadcaster) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS controller_interface diff --git a/forward_command_controller/CMakeLists.txt b/forward_command_controller/CMakeLists.txt index f7610c5f85..e21e51f7ff 100644 --- a/forward_command_controller/CMakeLists.txt +++ b/forward_command_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(forward_command_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS controller_interface diff --git a/gpio_controllers/CMakeLists.txt b/gpio_controllers/CMakeLists.txt index 62274b0cf9..4b516418eb 100644 --- a/gpio_controllers/CMakeLists.txt +++ b/gpio_controllers/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.8) project(gpio_controllers) -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() # find dependencies find_package(ament_cmake REQUIRED) diff --git a/gripper_controllers/CMakeLists.txt b/gripper_controllers/CMakeLists.txt index 77c9d9183b..a13072975a 100644 --- a/gripper_controllers/CMakeLists.txt +++ b/gripper_controllers/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(gripper_controllers) -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS control_msgs diff --git a/imu_sensor_broadcaster/CMakeLists.txt b/imu_sensor_broadcaster/CMakeLists.txt index 7b12c9095e..a6b7fcd4b1 100644 --- a/imu_sensor_broadcaster/CMakeLists.txt +++ b/imu_sensor_broadcaster/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(imu_sensor_broadcaster) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS controller_interface diff --git a/joint_state_broadcaster/CMakeLists.txt b/joint_state_broadcaster/CMakeLists.txt index adbd5254e1..7c333518dd 100644 --- a/joint_state_broadcaster/CMakeLists.txt +++ b/joint_state_broadcaster/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(joint_state_broadcaster) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS builtin_interfaces diff --git a/joint_trajectory_controller/CMakeLists.txt b/joint_trajectory_controller/CMakeLists.txt index 37e68b08c9..e26f2948b6 100644 --- a/joint_trajectory_controller/CMakeLists.txt +++ b/joint_trajectory_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(joint_trajectory_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS angles diff --git a/mecanum_drive_controller/CMakeLists.txt b/mecanum_drive_controller/CMakeLists.txt index 095e910dee..0de94af3fd 100644 --- a/mecanum_drive_controller/CMakeLists.txt +++ b/mecanum_drive_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(mecanum_drive_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() # find dependencies set(THIS_PACKAGE_INCLUDE_DEPENDS diff --git a/parallel_gripper_controller/CMakeLists.txt b/parallel_gripper_controller/CMakeLists.txt index 8c1018895d..67ecf7b75e 100644 --- a/parallel_gripper_controller/CMakeLists.txt +++ b/parallel_gripper_controller/CMakeLists.txt @@ -1,11 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(parallel_gripper_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS control_msgs diff --git a/pid_controller/CMakeLists.txt b/pid_controller/CMakeLists.txt index d1374d54cb..98942672fa 100644 --- a/pid_controller/CMakeLists.txt +++ b/pid_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(pid_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() if(WIN32) add_compile_definitions( diff --git a/pose_broadcaster/CMakeLists.txt b/pose_broadcaster/CMakeLists.txt index 2375779e33..59f877b716 100644 --- a/pose_broadcaster/CMakeLists.txt +++ b/pose_broadcaster/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(pose_broadcaster) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS controller_interface diff --git a/position_controllers/CMakeLists.txt b/position_controllers/CMakeLists.txt index 71ffd0eeba..7febffd99e 100644 --- a/position_controllers/CMakeLists.txt +++ b/position_controllers/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(position_controllers) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS forward_command_controller diff --git a/range_sensor_broadcaster/CMakeLists.txt b/range_sensor_broadcaster/CMakeLists.txt index 744611bb65..e2363ea24f 100644 --- a/range_sensor_broadcaster/CMakeLists.txt +++ b/range_sensor_broadcaster/CMakeLists.txt @@ -7,15 +7,9 @@ if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD_REQUIRED ON) endif() -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS controller_interface diff --git a/ros2_controllers.cmake b/ros2_controllers.cmake new file mode 100644 index 0000000000..eceacdf4d7 --- /dev/null +++ b/ros2_controllers.cmake @@ -0,0 +1,44 @@ +# Copyright 2025 AIT - Austrian Institute of Technology GmbH +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# set compiler options depending on detected compiler +macro(set_compiler_options) + if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable + -Werror=return-type -Werror=shadow -Werror=format + -Werror=missing-braces) + message(STATUS "Compiler warnings enabled for ${CMAKE_CXX_COMPILER_ID}") + + # Extract major version if g++ is used + if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + + string(REPLACE "." ";" VERSION_LIST ${CMAKE_CXX_COMPILER_VERSION}) + list(GET VERSION_LIST 0 GCC_MAJOR_VERSION) + list(GET VERSION_LIST 1 GCC_MINOR_VERSION) + + message(STATUS "Detected GCC Version: ${CMAKE_CXX_COMPILER_VERSION} (Major: ${GCC_MAJOR_VERSION}, Minor: ${GCC_MINOR_VERSION})") + + if (GCC_MAJOR_VERSION GREATER 10) + # GCC 11 introduced -Werror=range-loop-construct + add_compile_options(-Werror=range-loop-construct) + endif() + endif() + endif() +endmacro() + +# using this instead of visibility macros +# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 +macro(export_windows_symbols) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endmacro() diff --git a/steering_controllers_library/CMakeLists.txt b/steering_controllers_library/CMakeLists.txt index 2e80ed198f..c64edce7bb 100644 --- a/steering_controllers_library/CMakeLists.txt +++ b/steering_controllers_library/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(steering_controllers_library) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() # find dependencies set(THIS_PACKAGE_INCLUDE_DEPENDS diff --git a/tricycle_controller/CMakeLists.txt b/tricycle_controller/CMakeLists.txt index b5669530dc..15d54b4967 100644 --- a/tricycle_controller/CMakeLists.txt +++ b/tricycle_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(tricycle_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS ackermann_msgs diff --git a/tricycle_steering_controller/CMakeLists.txt b/tricycle_steering_controller/CMakeLists.txt index 9dbf5e3543..aab4c5acce 100644 --- a/tricycle_steering_controller/CMakeLists.txt +++ b/tricycle_steering_controller/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(tricycle_steering_controller) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() # find dependencies set(THIS_PACKAGE_INCLUDE_DEPENDS diff --git a/velocity_controllers/CMakeLists.txt b/velocity_controllers/CMakeLists.txt index e7df93d2ab..bc03c57bed 100644 --- a/velocity_controllers/CMakeLists.txt +++ b/velocity_controllers/CMakeLists.txt @@ -1,15 +1,9 @@ cmake_minimum_required(VERSION 3.16) project(velocity_controllers) -if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable - -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct - -Werror=missing-braces) -endif() - -# using this instead of visibility macros -# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +include(../ros2_controllers.cmake) +set_compiler_warnings() +export_windows_symbols() set(THIS_PACKAGE_INCLUDE_DEPENDS forward_command_controller