From 9cb3f7ea1d2a5326d737dffedbc5d689d58743b0 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Mon, 23 Jan 2023 11:50:35 +1000 Subject: [PATCH 1/2] Fix issues with new clang --- rviz_plugin_tutorials/CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/rviz_plugin_tutorials/CMakeLists.txt b/rviz_plugin_tutorials/CMakeLists.txt index 01ff2738..1b4b4079 100644 --- a/rviz_plugin_tutorials/CMakeLists.txt +++ b/rviz_plugin_tutorials/CMakeLists.txt @@ -10,6 +10,18 @@ catkin_package() include_directories(${catkin_INCLUDE_DIRS}) link_directories(${catkin_LIBRARY_DIRS}) +if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL "11") + # newer Clang chokes on the idiomatic way to use CF_ENUM; e.g. like this: + # typedef CF_ENUM(int, MyEnum) { + # MY_ENUM_THING, + # MY_ENUM_OTHER_THING, + # # etc... + # } + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") + SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-undef-prefix") +endif() + ## This setting causes Qt's "MOC" generation to happen automatically. set(CMAKE_AUTOMOC ON) From f0bf60578d309427bfb60f6234c6b2a225d9367f Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Mon, 23 Jan 2023 14:34:10 +1000 Subject: [PATCH 2/2] Same here --- librviz_tutorial/CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/librviz_tutorial/CMakeLists.txt b/librviz_tutorial/CMakeLists.txt index cc430f33..3490fa76 100644 --- a/librviz_tutorial/CMakeLists.txt +++ b/librviz_tutorial/CMakeLists.txt @@ -13,6 +13,18 @@ link_directories(${catkin_LIBRARY_DIRS}) ## This setting causes Qt's "MOC" generation to happen automatically. set(CMAKE_AUTOMOC ON) +if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL "11") + # newer Clang chokes on the idiomatic way to use CF_ENUM; e.g. like this: + # typedef CF_ENUM(int, MyEnum) { + # MY_ENUM_THING, + # MY_ENUM_OTHER_THING, + # # etc... + # } + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") + SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-undef-prefix") +endif() + ## This plugin includes Qt widgets, so we must include Qt. ## We'll use the version that rviz used so they are compatible. if(rviz_QT_VERSION VERSION_LESS "5")