diff --git a/Docs/adv_cpp_client.md b/Docs/adv_cpp_client.md index 27bf8e673b6..c035b400289 100644 --- a/Docs/adv_cpp_client.md +++ b/Docs/adv_cpp_client.md @@ -133,3 +133,4 @@ BINDIR=$(CURDIR)/bin INSTALLDIR=$(CURDIR)/libcarla-install TOOLCHAIN=$(CURDIR)/ToolChain.cmake ``` + diff --git a/LibCarla/cmake/fast_dds/CMakeLists.txt b/LibCarla/cmake/fast_dds/CMakeLists.txt index 9f2bd03785b..843b391e18d 100644 --- a/LibCarla/cmake/fast_dds/CMakeLists.txt +++ b/LibCarla/cmake/fast_dds/CMakeLists.txt @@ -11,7 +11,7 @@ file(GLOB libcarla_carla_fastdds_headers ) install(FILES ${libcarla_carla_fastdds_headers} DESTINATION include/carla/ros2) -file(GLOB fast_dds_dependencies "${FASTDDS_LIB_PATH}/*.so*") +file(GLOB fast_dds_dependencies "${FASTDDS_LIB_PATH}/*.a") install(FILES ${fast_dds_dependencies} DESTINATION lib) @@ -21,9 +21,6 @@ file(GLOB libcarla_fastdds_sources "${libcarla_source_path}/carla/ros2/listeners/*.cpp" "${libcarla_source_path}/carla/ros2/types/*.cpp") -set(FASTDDS_CPP_STD_INCLUDES "/usr/include/c++/7") -set(CMAKE_CXX_FLAGS_RELEASE "-O3 -fPIC -D_GLIBCXX_USE_CXX11_ABI=0 -I${FASTDDS_CPP_STD_INCLUDES}" CACHE STRING "" FORCE) - # ============================================================================== # Create targets for debug and release in the same build type. # ============================================================================== @@ -31,6 +28,8 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -fPIC -D_GLIBCXX_USE_CXX11_ABI=0 -I${FASTDDS_CP if (LIBCARLA_BUILD_RELEASE) add_library(carla_fastdds STATIC ${libcarla_fastdds_sources}) + target_compile_options(carla_fastdds PRIVATE -fexceptions) + target_include_directories(carla_fastdds SYSTEM PRIVATE "${BOOST_INCLUDE_PATH}" "${RPCLIB_INCLUDE_PATH}") @@ -46,7 +45,10 @@ endif() if (LIBCARLA_BUILD_DEBUG) add_library(carla_fastdds_debug STATIC ${libcarla_fastdds_sources}) - target_include_directories(carla_fastdds_debug SYSTEM PRIVATE + + target_compile_options(carla_fastdds_debug PRIVATE -fexceptions) + + target_include_directories(carla_fastdds_debug SYSTEM PRIVATE "${BOOST_INCLUDE_PATH}" "${RPCLIB_INCLUDE_PATH}") install(TARGETS carla_fastdds_debug DESTINATION lib) diff --git a/LibCarla/source/carla/ros2/listeners/CarlaListener.cpp b/LibCarla/source/carla/ros2/listeners/CarlaListener.cpp index 4dd7dbaa10b..10d7bff032b 100644 --- a/LibCarla/source/carla/ros2/listeners/CarlaListener.cpp +++ b/LibCarla/source/carla/ros2/listeners/CarlaListener.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaListener.h" #include diff --git a/LibCarla/source/carla/ros2/listeners/CarlaListener.h b/LibCarla/source/carla/ros2/listeners/CarlaListener.h index b1e1f25547b..1be3fa50ea2 100644 --- a/LibCarla/source/carla/ros2/listeners/CarlaListener.h +++ b/LibCarla/source/carla/ros2/listeners/CarlaListener.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include diff --git a/LibCarla/source/carla/ros2/listeners/CarlaSubscriberListener.cpp b/LibCarla/source/carla/ros2/listeners/CarlaSubscriberListener.cpp index da95acab2f2..7ad24825fe5 100644 --- a/LibCarla/source/carla/ros2/listeners/CarlaSubscriberListener.cpp +++ b/LibCarla/source/carla/ros2/listeners/CarlaSubscriberListener.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaSubscriberListener.h" #include diff --git a/LibCarla/source/carla/ros2/listeners/CarlaSubscriberListener.h b/LibCarla/source/carla/ros2/listeners/CarlaSubscriberListener.h index 5df14437bcd..8bfd03d05fa 100644 --- a/LibCarla/source/carla/ros2/listeners/CarlaSubscriberListener.h +++ b/LibCarla/source/carla/ros2/listeners/CarlaSubscriberListener.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaClockPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaClockPublisher.cpp index b59e1f38d19..76983d5e61f 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaClockPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaClockPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaClockPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaClockPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaClockPublisher.h index 5ebcf1f060f..2c5b2140992 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaClockPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaClockPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaCollisionPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaCollisionPublisher.cpp index 2df478c6089..913e9cf8e2c 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaCollisionPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaCollisionPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaCollisionPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaCollisionPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaCollisionPublisher.h index afe7da7479b..2b764b0d94b 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaCollisionPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaCollisionPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaDVSCameraPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaDVSCameraPublisher.cpp index 174df73e2af..ad39e49a1b4 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaDVSCameraPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaDVSCameraPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaDVSCameraPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaDVSCameraPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaDVSCameraPublisher.h index f5878a4dae9..213716d1989 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaDVSCameraPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaDVSCameraPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaDepthCameraPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaDepthCameraPublisher.cpp index 895fab63cba..01d002bb1df 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaDepthCameraPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaDepthCameraPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaDepthCameraPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaDepthCameraPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaDepthCameraPublisher.h index 6ebd110856a..0e70460d327 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaDepthCameraPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaDepthCameraPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaGNSSPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaGNSSPublisher.cpp index fc0762d111c..d77515dd41a 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaGNSSPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaGNSSPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaGNSSPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaGNSSPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaGNSSPublisher.h index e40ebafb1bf..6ef6173345b 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaGNSSPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaGNSSPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaIMUPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaIMUPublisher.cpp index b7c305eb39c..92b9807fb31 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaIMUPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaIMUPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaIMUPublisher.h" #include @@ -175,7 +173,7 @@ namespace ros2 { geometry_msgs::msg::Quaternion orientation; const float rx = 0.0f; // pitch - const float ry = (M_PIf32 / 2.0f) - compass; // yaw + const float ry = (float(M_PI_2) / 2.0f) - compass; // yaw const float rz = 0.0f; // roll const float cr = cosf(rz * 0.5f); diff --git a/LibCarla/source/carla/ros2/publishers/CarlaIMUPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaIMUPublisher.h index bb2fcd41fca..2feb341be69 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaIMUPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaIMUPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaISCameraPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaISCameraPublisher.cpp index 6c582a302de..78570e0a69d 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaISCameraPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaISCameraPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaISCameraPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaISCameraPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaISCameraPublisher.h index 5aff7bed0c0..7b310113de4 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaISCameraPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaISCameraPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaLidarPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaLidarPublisher.cpp index 4a8c5d53a36..be25f2a99df 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaLidarPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaLidarPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaLidarPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaLidarPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaLidarPublisher.h index 1ea49c6e00f..fb27b1a67ec 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaLidarPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaLidarPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaLineInvasionPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaLineInvasionPublisher.cpp index ce906048c53..672cd48e447 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaLineInvasionPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaLineInvasionPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaLineInvasionPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaLineInvasionPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaLineInvasionPublisher.h index f9f8ce239a7..c121a936424 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaLineInvasionPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaLineInvasionPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaMapSensorPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaMapSensorPublisher.cpp index 536576f94e6..d8759b62ddc 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaMapSensorPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaMapSensorPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaMapSensorPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaMapSensorPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaMapSensorPublisher.h index d9b63c567e9..b0bb6dc28ee 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaMapSensorPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaMapSensorPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaNormalsCameraPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaNormalsCameraPublisher.cpp index 94dabce727b..4b2fce968a7 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaNormalsCameraPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaNormalsCameraPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaNormalsCameraPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaNormalsCameraPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaNormalsCameraPublisher.h index 696ee3e01ae..d05d4dc2103 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaNormalsCameraPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaNormalsCameraPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaOpticalFlowCameraPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaOpticalFlowCameraPublisher.cpp index afa2e125c10..f3095b3b0be 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaOpticalFlowCameraPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaOpticalFlowCameraPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaOpticalFlowCameraPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaOpticalFlowCameraPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaOpticalFlowCameraPublisher.h index 7ebe5942634..17124ae4a56 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaOpticalFlowCameraPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaOpticalFlowCameraPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaPublisher.h index d3533b0dc5c..3a9a9ddf8e7 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaRGBCameraPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaRGBCameraPublisher.cpp index 36a6d7ad14c..1ca42f567aa 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaRGBCameraPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaRGBCameraPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaRGBCameraPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaRGBCameraPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaRGBCameraPublisher.h index bd00d95a2bf..ca1a1c7e1f7 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaRGBCameraPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaRGBCameraPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaRadarPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaRadarPublisher.cpp index 5ef6fd3e95b..7b653b36ba5 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaRadarPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaRadarPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaRadarPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaRadarPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaRadarPublisher.h index 21418ec6e89..27133b02777 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaRadarPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaRadarPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaSSCameraPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaSSCameraPublisher.cpp index b096a6b80d8..23cb56852c9 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaSSCameraPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaSSCameraPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaSSCameraPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaSSCameraPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaSSCameraPublisher.h index a31912d90d5..a8b152b51d3 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaSSCameraPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaSSCameraPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaSemanticLidarPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaSemanticLidarPublisher.cpp index 2a64776d0e0..827665643d2 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaSemanticLidarPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaSemanticLidarPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaSemanticLidarPublisher.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaSemanticLidarPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaSemanticLidarPublisher.h index 4923e282d27..a2c27a20423 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaSemanticLidarPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaSemanticLidarPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaSpeedometerSensor.cpp b/LibCarla/source/carla/ros2/publishers/CarlaSpeedometerSensor.cpp index 042e1dcfc7c..02759470d39 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaSpeedometerSensor.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaSpeedometerSensor.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaSpeedometerSensor.h" #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaSpeedometerSensor.h b/LibCarla/source/carla/ros2/publishers/CarlaSpeedometerSensor.h index 90cb74f819e..84c0c996882 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaSpeedometerSensor.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaSpeedometerSensor.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/publishers/CarlaTransformPublisher.cpp b/LibCarla/source/carla/ros2/publishers/CarlaTransformPublisher.cpp index caf9d5339d5..c00248b8e64 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaTransformPublisher.cpp +++ b/LibCarla/source/carla/ros2/publishers/CarlaTransformPublisher.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaTransformPublisher.h" #include @@ -161,9 +159,9 @@ namespace ros2 { const float ty = *translation++; const float tz = *translation++; - const float rx = ((*rotation++) * -1.0f) * (M_PIf32 / 180.0f); - const float ry = ((*rotation++) * -1.0f) * (M_PIf32 / 180.0f); - const float rz = *rotation++ * (M_PIf32 / 180.0f); + const float rx = ((*rotation++) * -1.0f) * (float(M_PI_2) / 180.0f); + const float ry = ((*rotation++) * -1.0f) * (float(M_PI_2) / 180.0f); + const float rz = *rotation++ * (float(M_PI_2) / 180.0f); const float cr = cosf(rz * 0.5f); const float sr = sinf(rz * 0.5f); diff --git a/LibCarla/source/carla/ros2/publishers/CarlaTransformPublisher.h b/LibCarla/source/carla/ros2/publishers/CarlaTransformPublisher.h index 132cc0370ce..e8ae06c8bb7 100644 --- a/LibCarla/source/carla/ros2/publishers/CarlaTransformPublisher.h +++ b/LibCarla/source/carla/ros2/publishers/CarlaTransformPublisher.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/subscribers/CarlaEgoVehicleControlSubscriber.cpp b/LibCarla/source/carla/ros2/subscribers/CarlaEgoVehicleControlSubscriber.cpp index 4a31b7e7046..0089336e07c 100644 --- a/LibCarla/source/carla/ros2/subscribers/CarlaEgoVehicleControlSubscriber.cpp +++ b/LibCarla/source/carla/ros2/subscribers/CarlaEgoVehicleControlSubscriber.cpp @@ -1,5 +1,3 @@ -#define _GLIBCXX_USE_CXX11_ABI 0 - #include "CarlaEgoVehicleControlSubscriber.h" #include "carla/ros2/types/CarlaEgoVehicleControl.h" diff --git a/LibCarla/source/carla/ros2/subscribers/CarlaEgoVehicleControlSubscriber.h b/LibCarla/source/carla/ros2/subscribers/CarlaEgoVehicleControlSubscriber.h index 9962443226d..22b523cc189 100644 --- a/LibCarla/source/carla/ros2/subscribers/CarlaEgoVehicleControlSubscriber.h +++ b/LibCarla/source/carla/ros2/subscribers/CarlaEgoVehicleControlSubscriber.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include #include diff --git a/LibCarla/source/carla/ros2/subscribers/CarlaSubscriber.h b/LibCarla/source/carla/ros2/subscribers/CarlaSubscriber.h index f8f909f1c37..09f3eced562 100644 --- a/LibCarla/source/carla/ros2/subscribers/CarlaSubscriber.h +++ b/LibCarla/source/carla/ros2/subscribers/CarlaSubscriber.h @@ -3,7 +3,6 @@ // For a copy, see . #pragma once -#define _GLIBCXX_USE_CXX11_ABI 0 #include diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Carla.Build.cs b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Carla.Build.cs index f74e9dbbc14..6578edc6635 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Carla.Build.cs +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Carla.Build.cs @@ -322,11 +322,9 @@ private void AddCarlaServerDependency(ReadOnlyTargetRules Target) { PublicAdditionalLibraries.Add(Path.Combine(LibCarlaInstallPath, "lib", GetLibName("carla_fastdds"))); - string LibFastDDSPath = LibCarlaInstallPath; - AddDynamicLibrary(Path.Combine(LibFastDDSPath, "lib", "libfoonathan_memory-0.7.3.so")); - AddDynamicLibrary(Path.Combine(LibFastDDSPath, "lib", "libfastcdr.so")); - AddDynamicLibrary(Path.Combine(LibFastDDSPath, "lib", "libfastrtps.so")); - PublicAdditionalLibraries.Add("stdc++"); + PublicAdditionalLibraries.Add(Path.Combine(LibCarlaInstallPath, "lib", "libfoonathan_memory-0.7.3.a")); + PublicAdditionalLibraries.Add(Path.Combine(LibCarlaInstallPath, "lib", "libfastcdr.a")); + PublicAdditionalLibraries.Add(Path.Combine(LibCarlaInstallPath, "lib", "libfastrtps.a")); } diff --git a/Util/BuildTools/BuildCarlaUE4.sh b/Util/BuildTools/BuildCarlaUE4.sh index 4db570edb15..b7315435070 100755 --- a/Util/BuildTools/BuildCarlaUE4.sh +++ b/Util/BuildTools/BuildCarlaUE4.sh @@ -128,9 +128,7 @@ if ${REMOVE_INTERMEDIATE} ; then rm -Rf ${UE4_INTERMEDIATE_FOLDERS} - cd Plugins - rm -Rf HoudiniEngine - cd .. + rm -Rf Plugins/HoudiniEngine popd >/dev/null diff --git a/Util/BuildTools/BuildLibCarla.sh b/Util/BuildTools/BuildLibCarla.sh index c9e2f13a009..aef81583e5c 100755 --- a/Util/BuildTools/BuildLibCarla.sh +++ b/Util/BuildTools/BuildLibCarla.sh @@ -138,7 +138,7 @@ function build_libcarla { M_BUILD_FOLDER=${LIBCARLA_BUILD_PYTORCH_FOLDER}.$(echo "$2" | tr '[:upper:]' '[:lower:]') M_INSTALL_FOLDER=${LIBCARLA_INSTALL_SERVER_FOLDER} elif [ $1 == ros2 ] ; then - M_TOOLCHAIN=${LIBSTDCPP_TOOLCHAIN_FILE} + M_TOOLCHAIN=${LIBCPP_TOOLCHAIN_FILE} M_BUILD_FOLDER=${LIBCARLA_FASTDDS_FOLDER}.$(echo "$2" | tr '[:upper:]' '[:lower:]') M_INSTALL_FOLDER=${LIBCARLA_INSTALL_SERVER_FOLDER} elif [ $1 == ClientRSS ] ; then diff --git a/Util/BuildTools/Setup.sh b/Util/BuildTools/Setup.sh index 64774d01718..788d4058f75 100755 --- a/Util/BuildTools/Setup.sh +++ b/Util/BuildTools/Setup.sh @@ -63,6 +63,51 @@ LLVM_INCLUDE="$UE4_ROOT/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1" LLVM_LIBPATH="$UE4_ROOT/Engine/Source/ThirdParty/Linux/LibCxx/lib/Linux/x86_64-unknown-linux-gnu" UNREAL_HOSTED_CFLAGS="--sysroot=$UE4_ROOT/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/" +# ============================================================================== +# -- Generate CMake toolchains ------------------------------------------------- +# ============================================================================== + +log "Generating CMake configuration files." + +# -- LIBSTDCPP_TOOLCHAIN_FILE -------------------------------------------------- + +cat >${LIBSTDCPP_TOOLCHAIN_FILE}.gen <>${LIBCPP_TOOLCHAIN_FILE}.gen </dev/null cmake -G "Ninja" \ -DCMAKE_INSTALL_PREFIX="${FASTDDS_INSTALL_DIR}" \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_CXX_FLAGS_RELEASE="-D_GLIBCXX_USE_CXX11_ABI=0" \ + -DCMAKE_TOOLCHAIN_FILE=${LIBCPP_TOOLCHAIN_FILE} \ + -DBUILD_SHARED_LIBS=OFF \ -DFOONATHAN_MEMORY_FORCE_VENDORED_BUILD=ON \ .. ninja @@ -933,35 +972,51 @@ if ${USE_ROS2} ; then popd >/dev/null rm -Rf ${FOONATHAN_MEMORY_VENDOR_SOURCE_DIR} - log "Build fast cdr" - FAST_CDR_BASENAME=fast-cdr - FAST_CDR_SOURCE_DIR=${PWD}/${FAST_CDR_BASENAME}-source - FAST_CDR_REPO="https://github.com/eProsima/Fast-CDR.git" - FAST_CDR_BRANCH=1.1.x - build_fastdds_extension ${FAST_CDR_SOURCE_DIR} "${FAST_CDR_REPO}" "${FAST_CDR_BRANCH}" - pushd ${FAST_CDR_SOURCE_DIR}/build >/dev/null - cmake -G "Ninja" \ - -DCMAKE_INSTALL_PREFIX="${FASTDDS_INSTALL_DIR}" \ - -DCMAKE_CXX_FLAGS_RELEASE="-D_GLIBCXX_USE_CXX11_ABI=0" \ - .. - ninja - ninja install - popd >/dev/null - rm -Rf ${FAST_CDR_SOURCE_DIR} - - log "Build fast dds" + log "Building fastdds" FAST_DDS_LIB_BASENAME=fast-dds-lib FAST_DDS_LIB_SOURCE_DIR=${PWD}/${FAST_DDS_LIB_BASENAME}-source FAST_DDS_LIB_REPO="https://github.com/eProsima/Fast-DDS.git" - FAST_DDS_LIB_BRANCH=2.11.2 - build_fastdds_extension ${FAST_DDS_LIB_SOURCE_DIR} "${FAST_DDS_LIB_REPO}" "${FAST_DDS_LIB_BRANCH}" + FAST_DDS_LIB_BRANCH=v2.11.2 + + git clone --recurse-submodules --depth 1 --branch ${FAST_DDS_LIB_BRANCH} ${FAST_DDS_LIB_REPO} ${FAST_DDS_LIB_SOURCE_DIR} + + # copy OpenSSL from UE4 + cp -r ${UE4_ROOT}/Engine/Source/ThirdParty/OpenSSL/1.1.1c/include/Linux/x86_64-unknown-linux-gnu/* ${FASTDDS_INCLUDE} + cp -r ${UE4_ROOT}/Engine/Source/ThirdParty/OpenSSL/1.1.1c/lib/Linux/x86_64-unknown-linux-gnu/* ${FASTDDS_LIB} + + # copy libatomic from UE4 + # cp -r ${UE4_ROOT}/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/include/c++/4.8.5/atomic ${FASTDDS_INCLUDE} + # cp -r ${UE4_ROOT}/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/lib64/libatomic* ${FASTDDS_LIB} + + # we have to tweak the sources a bit to be able to compile with our boost version and without exceptions + if [[ -e ${FAST_DDS_LIB_SOURCE_DIR}/thirdparty/boost/include/boost ]]; then + # remove their boost includes, but keep their entry point + rm -rf ${FAST_DDS_LIB_SOURCE_DIR}/thirdparty/boost/include/boost + # ensure the find boost compiles without exceptions + sed -i s/"CXX_STANDARD 11"/"CXX_STANDARD 11\n COMPILE_DEFINITIONS \"-DBOOST_NO_EXCEPTIONS\""/ ${FAST_DDS_LIB_SOURCE_DIR}/cmake/modules/FindThirdpartyBoost.cmake + sed -i s/"class ThirdpartyBoostCompileTest"/"#ifdef BOOST_NO_EXCEPTIONS\nnamespace boost {void throw_exception(std::exception const \& e) {}}\n#endif\nclass ThirdpartyBoostCompileTest"/ ${FAST_DDS_LIB_SOURCE_DIR}/thirdparty/boost/test/ThirdpartyBoostCompile_test.cpp + fi + + mkdir -p ${FAST_DDS_LIB_SOURCE_DIR}/build pushd ${FAST_DDS_LIB_SOURCE_DIR}/build >/dev/null + # removed -DASIO_NO_EXCEPTIONS as fastdds makes usage of them. cmake -G "Ninja" \ -DCMAKE_INSTALL_PREFIX="${FASTDDS_INSTALL_DIR}" \ - -DCMAKE_CXX_FLAGS=-latomic \ - -DCMAKE_CXX_FLAGS_RELEASE="-D_GLIBCXX_USE_CXX11_ABI=0" \ + -DFORCE_CXX="14" \ + -DCMAKE_CXX_FLAGS="-fPIC -std=c++14 -stdlib=libc++ -I${LLVM_INCLUDE} -Wl,-L${LLVM_LIBPATH} -DBOOST_NO_EXCEPTIONS ${UNREAL_HOSTED_CFLAGS}" \ + -DBUILD_SHARED_LIBS=OFF \ + -DBUILD_TESTING=OFF \ + -DCOMPILE_EXAMPLES=OFF \ + -DCOMPILE_TOOLS=OFF \ -DTHIRDPARTY_Asio=FORCE \ + -DTHIRDPARTY_fastcdr=FORCE \ -DTHIRDPARTY_TinyXML2=FORCE \ + -DSQLITE3_SUPPORT=OFF \ + -DOPENSSL_FOUND:BOOL=ON \ + -DOPENSSL_INCLUDE_DIR:FILEPATH=${FASTDDS_INCLUDE} \ + -DOPENSSL_SSL_LIBRARY:FILEPATH=${FASTDDS_LIB}/libssl.a \ + -DOPENSSL_CRYPTO_LIBRARY:FILEPATH=${FASTDDS_LIB}/libcrypto.a \ + -DTHIRDPARTY_BOOST_INCLUDE_DIR="${BOOST_INCLUDE};${FAST_DDS_LIB_SOURCE_DIR}/thirdparty/boost/include" \ .. ninja ninja install @@ -969,7 +1024,8 @@ if ${USE_ROS2} ; then rm -Rf ${FAST_DDS_LIB_SOURCE_DIR} mkdir -p ${LIBCARLA_INSTALL_SERVER_FOLDER}/lib/ - cp -p ${FASTDDS_LIB}/*.so* ${LIBCARLA_INSTALL_SERVER_FOLDER}/lib/ + cp -p ${FASTDDS_LIB}/*.a ${LIBCARLA_INSTALL_SERVER_FOLDER}/lib/ + cp -p -r ${FASTDDS_INCLUDE}/* ${LIBCARLA_INSTALL_SERVER_FOLDER}/include/ fi fi @@ -989,47 +1045,9 @@ sed -e "s|\${CARLA_VERSION}|${CARLA_VERSION}|g" ${VERSION_H_FILE}.in > ${VERSION move_if_changed "${VERSION_H_FILE_GEN}" "${VERSION_H_FILE}" # ============================================================================== -# -- Generate CMake toolchains and config -------------------------------------- +# -- Generate CMake config ----------------------------------------------------- # ============================================================================== -log "Generating CMake configuration files." - -# -- LIBSTDCPP_TOOLCHAIN_FILE -------------------------------------------------- - -cat >${LIBSTDCPP_TOOLCHAIN_FILE}.gen <>${LIBCPP_TOOLCHAIN_FILE}.gen <${CMAKE_CONFIG_FILE}.gen <> ${CMAKE_CONFIG_FILE}.gen fi -# -- Move files ---------------------------------------------------------------- - -move_if_changed "${LIBSTDCPP_TOOLCHAIN_FILE}.gen" "${LIBSTDCPP_TOOLCHAIN_FILE}" -move_if_changed "${LIBCPP_TOOLCHAIN_FILE}.gen" "${LIBCPP_TOOLCHAIN_FILE}" move_if_changed "${CMAKE_CONFIG_FILE}.gen" "${CMAKE_CONFIG_FILE}" # ==============================================================================