Skip to content

Commit eb7c2be

Browse files
committed
salvage: ROS2 Humble build deps and tf2 headers (credit @quykova #5058)
Humble-friendly tf2_geometry_msgs.hpp includes, drop obsolete stdc++fs linkage, gcc/clang 12 toolchains, and missing ROS2 package deps. Based on @quykova #5058 with sequential find_package de-duped. Signed-off-by: Bartok9 <[email protected]>
1 parent d109f0d commit eb7c2be

7 files changed

Lines changed: 25 additions & 12 deletions

File tree

Unity/build.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ fi
1818

1919
cd linux-build
2020
if [ "$(uname)" == "Darwin" ]; then
21-
export CC=/usr/local/opt/llvm@8/bin/clang
22-
export CXX=/usr/local/opt/llvm@8/bin/clang++
21+
export CC=/usr/local/opt/llvm@12/bin/clang
22+
export CXX=/usr/local/opt/llvm@12/bin/clang++
2323
else
2424
export CC="clang-8"
2525
export CXX="clang++-8"

build.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ if [ "$(uname)" == "Darwin" ]; then
6464
export CXX="$(brew --prefix)/opt/llvm/bin/clang++"
6565
else
6666
if $gcc; then
67-
export CC="gcc-8"
68-
export CXX="g++-8"
67+
export CC="gcc-12"
68+
export CXX="g++-12"
6969
else
70-
export CC="clang-8"
71-
export CXX="clang++-8"
70+
export CC="clang-12"
71+
export CXX="clang++-12"
7272
fi
7373
fi
7474

cmake/cmake-modules/CommonSetup.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ macro(CommonSetup)
5959
if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
6060
set(CMAKE_CXX_FLAGS "-stdlib=libc++ -Wno-documentation -Wno-unknown-warning-option ${CMAKE_CXX_FLAGS}")
6161
find_package(LLVM REQUIRED CONFIG)
62-
set(CXX_EXP_LIB "-L${LLVM_LIBRARY_DIRS} -lc++fs -ferror-limit=10")
62+
set(CXX_EXP_LIB "-L${LLVM_LIBRARY_DIRS} -ferror-limit=10")
6363
else()
64-
set(CXX_EXP_LIB "-lstdc++fs -fmax-errors=10 -Wnoexcept -Wstrict-null-sentinel")
64+
set(CXX_EXP_LIB "-fmax-errors=10 -Wnoexcept -Wstrict-null-sentinel")
6565
endif ()
6666
endif ()
6767

ros2/src/airsim_ros_pkgs/CMakeLists.txt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ add_subdirectory("${AIRSIM_ROOT}/cmake/AirLib" AirLib)
3030
add_subdirectory("${AIRSIM_ROOT}/cmake/MavLinkCom" MavLinkCom)
3131

3232
set(CMAKE_CXX_STANDARD 14)
33-
set(CMAKE_CXX_FLAGS "-O3 -Wall -Wextra -Wnoexcept -Wstrict-null-sentinel")
33+
set(CMAKE_CXX_FLAGS "-O3 -Wall -Wextra -Wnoexcept -Wstrict-null-sentinel -Wno-deprecated-copy")
3434
set(CXX_EXP_LIB "-nostdinc++ -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -nodefaultlibs
3535
-l/usr/lib/x86_64-linux-gnu/libc++.so -l/usr/lib/x86_64-linux-gnu/libc++abi.so
3636
-lm -lc -lgcc_s -lgcc
37-
-lstdc++fs -fmax-errors=10")
37+
-fmax-errors=10")
3838
set(RPC_LIB_INCLUDES " ${AIRSIM_ROOT}/external/rpclib/rpclib-2.3.0/include")
3939
set(RPC_LIB rpc)
4040
message(STATUS "found RPC_LIB_INCLUDES=${RPC_LIB_INCLUDES}")
@@ -46,6 +46,8 @@ set(INCLUDE_DIRS include
4646
${AIRSIM_ROOT}/MavLinkCom/include
4747
${AIRSIM_ROOT}/MavLinkCom/common_utils
4848
${OpenCV_INCLUDE_DIRS}
49+
${std_srvs_INCLUDE_DIRS}
50+
${mavros_msgs_INCLUDE_DIRS}
4951
)
5052
include_directories(${INCLUDE_DIRS})
5153

@@ -59,6 +61,8 @@ ament_target_dependencies(pd_position_controller_simple
5961
nav_msgs
6062
geometry_msgs
6163
airsim_interfaces
64+
tf2
65+
tf2_geometry_msgs
6266
)
6367

6468
add_library(airsim_ros src/airsim_ros_wrapper.cpp)
@@ -72,12 +76,17 @@ ament_target_dependencies(airsim_ros
7276
tf2_ros
7377
cv_bridge
7478
airsim_interfaces
79+
tf2_geometry_msgs
80+
mavros_msgs
81+
std_srvs
7582
)
7683

7784
add_executable(airsim_node src/airsim_node.cpp)
7885
target_link_libraries(airsim_node airsim_ros AirLib)
7986
ament_target_dependencies(airsim_node
8087
rclcpp
88+
tf2
89+
tf2_geometry_msgs
8190
)
8291

8392
add_executable(pd_position_controller_simple_node
@@ -86,6 +95,8 @@ target_link_libraries(pd_position_controller_simple_node
8695
pd_position_controller_simple airsim_ros AirLib)
8796
ament_target_dependencies(pd_position_controller_simple_node
8897
rclcpp
98+
tf2
99+
tf2_geometry_msgs
89100
)
90101

91102
# rosidl_target_interfaces(airsim_node

ros2/src/airsim_ros_pkgs/include/pd_position_controller_simple.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ STRICT_MODE_OFF //todo what does this do?
1515
#include <rclcpp/rclcpp.hpp>
1616
#include <tf2/LinearMath/Matrix3x3.h>
1717
#include <tf2/LinearMath/Quaternion.h>
18-
#include <tf2_geometry_msgs/tf2_geometry_msgs.h>
18+
#include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
1919
#include <nav_msgs/msg/odometry.hpp>
2020
#include <math.h>
2121
#include <airsim_interfaces/msg/vel_cmd.hpp>

ros2/src/airsim_ros_pkgs/include/utils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <tf2_geometry_msgs/tf2_geometry_msgs.h>
1+
#include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
22
namespace utils
33
{
44
inline double get_yaw_from_quat_msg(const geometry_msgs::msg::Quaternion& quat_msg)

ros2/src/airsim_ros_pkgs/package.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
<exec_depend>image_transport</exec_depend>
3636
<exec_depend>message_generation</exec_depend>
3737
<exec_depend>message_runtime</exec_depend>
38+
<exec_depend>mavros_msgs</exec_depend>
39+
<exec_depend>std_srvs</exec_depend>
3840
<exec_depend>nav_msgs</exec_depend>
3941
<exec_depend>rclcpp</exec_depend>
4042
<exec_depend>rclpy</exec_depend>

0 commit comments

Comments
 (0)