diff --git a/fuse_constraints/CMakeLists.txt b/fuse_constraints/CMakeLists.txt index 1a4d8c874..ef86b86b7 100644 --- a/fuse_constraints/CMakeLists.txt +++ b/fuse_constraints/CMakeLists.txt @@ -77,6 +77,15 @@ else() add_compile_options(-Wall -Werror) endif() +# On ARM, the use of Eigen 3.4 with g++11 (both the versions in Jammy) causes a warning, which in turn causes +# the build to fail. Details are here: https://gitlab.com/libeigen/eigen/-/issues/2326. We can suppress the warning +# for ARM builds here. +if(Eigen3_VERSION VERSION_EQUAL 3.4 AND +CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 11.0 AND +CMAKE_LIBRARY_ARCHITECTURE STREQUAL "aarch64-linux-gnu") + add_compile_options(-Wno-class-memaccess) +endif() + # fuse_constraints library add_library(${PROJECT_NAME} src/absolute_constraint.cpp diff --git a/fuse_core/CMakeLists.txt b/fuse_core/CMakeLists.txt index 7cb841059..10b96f9ff 100644 --- a/fuse_core/CMakeLists.txt +++ b/fuse_core/CMakeLists.txt @@ -35,6 +35,15 @@ catkin_package( ########### add_compile_options(-Wall -Werror) +# On ARM, the use of Eigen 3.4 with g++11 (both the versions in Jammy) causes a warning, which in turn causes +# the build to fail. Details are here: https://gitlab.com/libeigen/eigen/-/issues/2326. We can suppress the warning +# for ARM builds here. +if(Eigen3_VERSION VERSION_EQUAL 3.4 AND +CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 11.0 AND +CMAKE_LIBRARY_ARCHITECTURE STREQUAL "aarch64-linux-gnu") + add_compile_options(-Wno-class-memaccess) +endif() + ## fuse_core library add_library(${PROJECT_NAME} src/async_motion_model.cpp diff --git a/fuse_models/CMakeLists.txt b/fuse_models/CMakeLists.txt index 9b861f5b9..9fcd8e60a 100644 --- a/fuse_models/CMakeLists.txt +++ b/fuse_models/CMakeLists.txt @@ -81,6 +81,15 @@ roslint_cpp() ########### add_compile_options(-Wall -Werror) +# On ARM, the use of Eigen 3.4 with g++11 (both the versions in Jammy) causes a warning, which in turn causes +# the build to fail. Details are here: https://gitlab.com/libeigen/eigen/-/issues/2326. We can suppress the warning +# for ARM builds here. +if(Eigen3_VERSION VERSION_EQUAL 3.4 AND +CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 11.0 AND +CMAKE_LIBRARY_ARCHITECTURE STREQUAL "aarch64-linux-gnu") + add_compile_options(-Wno-class-memaccess) +endif() + ## Declare a C++ library add_library(${PROJECT_NAME} src/acceleration_2d.cpp diff --git a/fuse_viz/CMakeLists.txt b/fuse_viz/CMakeLists.txt index bde535755..3e02e0820 100644 --- a/fuse_viz/CMakeLists.txt +++ b/fuse_viz/CMakeLists.txt @@ -35,6 +35,15 @@ add_definitions(-DQT_NO_KEYWORDS) ########### add_compile_options(-Wall -Werror) +# On ARM, the use of Eigen 3.4 with g++11 (both the versions in Jammy) causes a warning, which in turn causes +# the build to fail. Details are here: https://gitlab.com/libeigen/eigen/-/issues/2326. We can suppress the warning +# for ARM builds here. +if(Eigen3_VERSION VERSION_EQUAL 3.4 AND +CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 11.0 AND +CMAKE_LIBRARY_ARCHITECTURE STREQUAL "aarch64-linux-gnu") + add_compile_options(-Wno-class-memaccess) +endif() + catkin_package( INCLUDE_DIRS include LIBRARIES ${PROJECT_NAME}