Skip to content

Commit 9ca7a4b

Browse files
authored
Expose Spot C++ SDK via environment hooks (#79)
* Expose Spot C++ SDK via environment hooks Signed-off-by: Michel Hidalgo <[email protected]> * Add bosdyn_cmake_module as runtime dependency Signed-off-by: Michel Hidalgo <[email protected]> * Fix bad edit Signed-off-by: Michel Hidalgo <[email protected]> --------- Signed-off-by: Michel Hidalgo <[email protected]>
1 parent 730e51e commit 9ca7a4b

32 files changed

+93
-65
lines changed

bosdyn_api_msgs/CMakeLists.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ find_package(ament_cmake REQUIRED)
1010
find_package(geometry_msgs REQUIRED)
1111
find_package(proto2ros REQUIRED)
1212

13-
find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
1413
find_package(bosdyn_cmake_module REQUIRED)
14+
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module
1515

1616
fetch_spot_sdk(spotsdk)
1717
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
@@ -29,6 +29,10 @@ proto2ros_vendor_package(${PROJECT_NAME}
2929
ROS_DEPENDENCIES geometry_msgs
3030
)
3131

32-
ament_export_dependencies(geometry_msgs)
32+
ament_export_dependencies(
33+
bosdyn_cmake_module
34+
geometry_msgs
35+
bosdyn
36+
)
3337

34-
ament_package(CONFIG_EXTRAS bosdyn_api_msgs-extras.cmake)
38+
ament_package()

bosdyn_api_msgs/package.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ Copyright (c) 2023 Boston Dynamics AI Institute LLC. All rights reserved.
1212

1313
<buildtool_depend>ament_cmake</buildtool_depend>
1414
<buildtool_depend>ament_cmake_python</buildtool_depend>
15-
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
1615
<buildtool_depend>rosidl_default_generators</buildtool_depend>
1716

17+
<depend>bosdyn_cmake_module</depend>
18+
1819
<depend>bosdyn-spot-cpp</depend>
1920
<depend>geometry_msgs</depend>
2021
<depend>proto2ros</depend>

bosdyn_auto_return_api_msgs/CMakeLists.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ find_package(ament_cmake REQUIRED)
1010
find_package(proto2ros REQUIRED)
1111
find_package(bosdyn_api_msgs REQUIRED)
1212

13-
find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
1413
find_package(bosdyn_cmake_module REQUIRED)
14+
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module
1515

1616
fetch_spot_sdk(spotsdk)
1717
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
@@ -27,6 +27,10 @@ proto2ros_vendor_package(${PROJECT_NAME}
2727
ROS_DEPENDENCIES bosdyn_api_msgs
2828
)
2929

30-
ament_export_dependencies(bosdyn_api_msgs)
30+
ament_export_dependencies(
31+
bosdyn_api_msgs
32+
bosdyn_cmake_module
33+
bosdyn
34+
)
3135

32-
ament_package(CONFIG_EXTRAS bosdyn_auto_return_api_msgs-extras.cmake)
36+
ament_package()

bosdyn_auto_return_api_msgs/bosdyn_auto_return_api_msgs-extras.cmake

Lines changed: 0 additions & 3 deletions
This file was deleted.

bosdyn_auto_return_api_msgs/package.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99

1010
<buildtool_depend>ament_cmake</buildtool_depend>
1111
<buildtool_depend>ament_cmake_python</buildtool_depend>
12-
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
1312
<buildtool_depend>rosidl_default_generators</buildtool_depend>
1413

14+
<depend>bosdyn_cmake_module</depend>
15+
1516
<depend>bosdyn-spot-cpp</depend>
1617
<depend>bosdyn_api_msgs</depend>
1718
<depend>proto2ros</depend>

bosdyn_autowalk_api_msgs/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ find_package(bosdyn_spot_api_msgs REQUIRED)
1414
find_package(bosdyn_spot_cam_api_msgs REQUIRED)
1515
find_package(proto2ros REQUIRED)
1616

17-
find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
1817
find_package(bosdyn_cmake_module REQUIRED)
18+
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module
1919

2020
fetch_spot_sdk(spotsdk)
2121
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
@@ -38,10 +38,12 @@ proto2ros_vendor_package(${PROJECT_NAME}
3838

3939
ament_export_dependencies(
4040
bosdyn_api_msgs
41+
bosdyn_cmake_module
4142
bosdyn_graph_nav_api_msgs
4243
bosdyn_mission_api_msgs
4344
bosdyn_spot_api_msgs
4445
bosdyn_spot_cam_api_msgs
46+
bosdyn
4547
)
4648

47-
ament_package(CONFIG_EXTRAS bosdyn_autowalk_api_msgs-extras.cmake)
49+
ament_package()

bosdyn_autowalk_api_msgs/bosdyn_autowalk_api_msgs-extras.cmake

Lines changed: 0 additions & 3 deletions
This file was deleted.

bosdyn_autowalk_api_msgs/package.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99

1010
<buildtool_depend>ament_cmake</buildtool_depend>
1111
<buildtool_depend>ament_cmake_python</buildtool_depend>
12-
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
1312
<buildtool_depend>rosidl_default_generators</buildtool_depend>
1413

14+
<depend>bosdyn_cmake_module</depend>
15+
1516
<depend>bosdyn-spot-cpp</depend>
1617
<depend>bosdyn_api_msgs</depend>
1718
<depend>bosdyn_graph_nav_api_msgs</depend>

bosdyn_cmake_module/CMakeLists.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,15 @@ install(
99
DESTINATION share/${PROJECT_NAME}
1010
)
1111

12-
ament_package(CONFIG_EXTRAS "bosdyn_cmake_module-extras.cmake")
12+
set(BOSDYN_CMAKE_PREFIX_PATH /opt/spot-cpp-sdk)
13+
14+
find_package(bosdyn REQUIRED PATHS "${BOSDYN_CMAKE_PREFIX_PATH}")
15+
16+
get_target_property(BOSDYN_API_SO_LOCATION bosdyn::bosdyn_api IMPORTED_LOCATION_RELEASE)
17+
get_filename_component(BOSDYN_LIBRARY_PATH "${BOSDYN_API_SO_LOCATION}" DIRECTORY)
18+
set(AMENT_CMAKE_ENVIRONMENT_HOOKS_DESC_library_path
19+
"prepend-non-duplicate;LD_LIBRARY_PATH;${BOSDYN_LIBRARY_PATH}"
20+
)
21+
ament_environment_hooks(cmake/templates/library_path.sh.in)
22+
23+
ament_package(CONFIG_EXTRAS cmake/templates/bosdyn_cmake_module-extras.cmake.in)

bosdyn_cmake_module/bosdyn_cmake_module-extras.cmake renamed to bosdyn_cmake_module/cmake/templates/bosdyn_cmake_module-extras.cmake.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
find_package(Python3 REQUIRED)
44
include(FetchContent)
55

6+
list(APPEND CMAKE_PREFIX_PATH "@BOSDYN_CMAKE_PREFIX_PATH@")
67
include("${bosdyn_cmake_module_DIR}/fetch_spot_sdk.cmake")

0 commit comments

Comments
 (0)