Skip to content

Commit

Permalink
Expose Spot C++ SDK via environment hooks (#79)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
mhidalgo-bdai authored Oct 4, 2024
1 parent 730e51e commit 9ca7a4b
Show file tree
Hide file tree
Showing 32 changed files with 93 additions and 65 deletions.
10 changes: 7 additions & 3 deletions bosdyn_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ find_package(ament_cmake REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(proto2ros REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

fetch_spot_sdk(spotsdk)
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
Expand All @@ -29,6 +29,10 @@ proto2ros_vendor_package(${PROJECT_NAME}
ROS_DEPENDENCIES geometry_msgs
)

ament_export_dependencies(geometry_msgs)
ament_export_dependencies(
bosdyn_cmake_module
geometry_msgs
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_api_msgs-extras.cmake)
ament_package()
3 changes: 2 additions & 1 deletion bosdyn_api_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ Copyright (c) 2023 Boston Dynamics AI Institute LLC. All rights reserved.

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_python</buildtool_depend>
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>

<depend>bosdyn_cmake_module</depend>

<depend>bosdyn-spot-cpp</depend>
<depend>geometry_msgs</depend>
<depend>proto2ros</depend>
Expand Down
10 changes: 7 additions & 3 deletions bosdyn_auto_return_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ find_package(ament_cmake REQUIRED)
find_package(proto2ros REQUIRED)
find_package(bosdyn_api_msgs REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

fetch_spot_sdk(spotsdk)
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
Expand All @@ -27,6 +27,10 @@ proto2ros_vendor_package(${PROJECT_NAME}
ROS_DEPENDENCIES bosdyn_api_msgs
)

ament_export_dependencies(bosdyn_api_msgs)
ament_export_dependencies(
bosdyn_api_msgs
bosdyn_cmake_module
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_auto_return_api_msgs-extras.cmake)
ament_package()

This file was deleted.

3 changes: 2 additions & 1 deletion bosdyn_auto_return_api_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_python</buildtool_depend>
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>

<depend>bosdyn_cmake_module</depend>

<depend>bosdyn-spot-cpp</depend>
<depend>bosdyn_api_msgs</depend>
<depend>proto2ros</depend>
Expand Down
6 changes: 4 additions & 2 deletions bosdyn_autowalk_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ find_package(bosdyn_spot_api_msgs REQUIRED)
find_package(bosdyn_spot_cam_api_msgs REQUIRED)
find_package(proto2ros REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

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

ament_export_dependencies(
bosdyn_api_msgs
bosdyn_cmake_module
bosdyn_graph_nav_api_msgs
bosdyn_mission_api_msgs
bosdyn_spot_api_msgs
bosdyn_spot_cam_api_msgs
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_autowalk_api_msgs-extras.cmake)
ament_package()

This file was deleted.

3 changes: 2 additions & 1 deletion bosdyn_autowalk_api_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_python</buildtool_depend>
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>

<depend>bosdyn_cmake_module</depend>

<depend>bosdyn-spot-cpp</depend>
<depend>bosdyn_api_msgs</depend>
<depend>bosdyn_graph_nav_api_msgs</depend>
Expand Down
13 changes: 12 additions & 1 deletion bosdyn_cmake_module/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,15 @@ install(
DESTINATION share/${PROJECT_NAME}
)

ament_package(CONFIG_EXTRAS "bosdyn_cmake_module-extras.cmake")
set(BOSDYN_CMAKE_PREFIX_PATH /opt/spot-cpp-sdk)

find_package(bosdyn REQUIRED PATHS "${BOSDYN_CMAKE_PREFIX_PATH}")

get_target_property(BOSDYN_API_SO_LOCATION bosdyn::bosdyn_api IMPORTED_LOCATION_RELEASE)
get_filename_component(BOSDYN_LIBRARY_PATH "${BOSDYN_API_SO_LOCATION}" DIRECTORY)
set(AMENT_CMAKE_ENVIRONMENT_HOOKS_DESC_library_path
"prepend-non-duplicate;LD_LIBRARY_PATH;${BOSDYN_LIBRARY_PATH}"
)
ament_environment_hooks(cmake/templates/library_path.sh.in)

ament_package(CONFIG_EXTRAS cmake/templates/bosdyn_cmake_module-extras.cmake.in)
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
find_package(Python3 REQUIRED)
include(FetchContent)

list(APPEND CMAKE_PREFIX_PATH "@BOSDYN_CMAKE_PREFIX_PATH@")
include("${bosdyn_cmake_module_DIR}/fetch_spot_sdk.cmake")
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Copyright (c) 2024 Boston Dynamics AI Institute LLC. All rights reserved.

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
ament_prepend_unique_value LD_LIBRARY_PATH "@BOSDYN_LIBRARY_PATH@"
6 changes: 4 additions & 2 deletions bosdyn_graph_nav_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ find_package(bosdyn_api_msgs REQUIRED)
find_package(bosdyn_spot_api_msgs REQUIRED)
find_package(proto2ros REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

fetch_spot_sdk(spotsdk)
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
Expand All @@ -30,7 +30,9 @@ proto2ros_vendor_package(${PROJECT_NAME}

ament_export_dependencies(
bosdyn_api_msgs
bosdyn_cmake_module
bosdyn_spot_api_msgs
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_graph_nav_api_msgs-extras.cmake)
ament_package()

This file was deleted.

3 changes: 2 additions & 1 deletion bosdyn_graph_nav_api_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_python</buildtool_depend>
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>

<depend>bosdyn_cmake_module</depend>

<depend>bosdyn-spot-cpp</depend>>
<depend>bosdyn_api_msgs</depend>
<depend>bosdyn_spot_api_msgs</depend>
Expand Down
6 changes: 4 additions & 2 deletions bosdyn_keepalive_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ find_package(bosdyn_api_msgs REQUIRED)
find_package(bosdyn_auto_return_api_msgs REQUIRED)
find_package(proto2ros REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

fetch_spot_sdk(spotsdk)
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
Expand All @@ -30,7 +30,9 @@ proto2ros_vendor_package(${PROJECT_NAME}

ament_export_dependencies(
bosdyn_api_msgs
bosdyn_cmake_module
bosdyn_auto_return_api_msgs
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_keepalive_api_msgs-extras.cmake)
ament_package()

This file was deleted.

3 changes: 2 additions & 1 deletion bosdyn_keepalive_api_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_python</buildtool_depend>
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>

<depend>bosdyn_cmake_module</depend>

<depend>bosdyn-spot-cpp</depend>
<depend>bosdyn_api_msgs</depend>
<depend>bosdyn_auto_return_api_msgs</depend>
Expand Down
10 changes: 7 additions & 3 deletions bosdyn_log_status_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ find_package(ament_cmake REQUIRED)
find_package(bosdyn_api_msgs REQUIRED)
find_package(proto2ros REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

fetch_spot_sdk(spotsdk)
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
Expand All @@ -27,6 +27,10 @@ proto2ros_vendor_package(${PROJECT_NAME}
ROS_DEPENDENCIES bosdyn_api_msgs
)

ament_export_dependencies(bosdyn_api_msgs)
ament_export_dependencies(
bosdyn_api_msgs
bosdyn_cmake_module
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_log_status_api_msgs-extras.cmake)
ament_package()

This file was deleted.

3 changes: 2 additions & 1 deletion bosdyn_log_status_api_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_python</buildtool_depend>
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>

<depend>bosdyn_cmake_module</depend>

<depend>bosdyn-spot-cpp</depend>
<depend>bosdyn_api_msgs</depend>
<depend>proto2ros</depend>
Expand Down
10 changes: 7 additions & 3 deletions bosdyn_metrics_logging_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ find_package(ament_cmake REQUIRED)
find_package(bosdyn_api_msgs REQUIRED)
find_package(proto2ros REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

fetch_spot_sdk(spotsdk)
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
Expand All @@ -27,6 +27,10 @@ proto2ros_vendor_package(${PROJECT_NAME}
ROS_DEPENDENCIES bosdyn_api_msgs
)

ament_export_dependencies(bosdyn_api_msgs)
ament_export_dependencies(
bosdyn_api_msgs
bosdyn_cmake_module
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_metrics_logging_api_msgs-extras.cmake)
ament_package()

This file was deleted.

3 changes: 2 additions & 1 deletion bosdyn_metrics_logging_api_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ Copyright (c) 2024 Boston Dynamics AI Institute LLC. All rights reserved.

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_python</buildtool_depend>
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>

<depend>bosdyn_cmake_module</depend>

<depend>bosdyn-spot-cpp</depend>
<depend>bosdyn_api_msgs</depend>
<depend>proto2ros</depend>
Expand Down
6 changes: 4 additions & 2 deletions bosdyn_mission_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ find_package(bosdyn_spot_api_msgs REQUIRED)
find_package(bosdyn_spot_cam_api_msgs REQUIRED)
find_package(proto2ros REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

fetch_spot_sdk(spotsdk)
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
Expand All @@ -36,9 +36,11 @@ proto2ros_vendor_package(${PROJECT_NAME}

ament_export_dependencies(
bosdyn_api_msgs
bosdyn_cmake_module
bosdyn_graph_nav_api_msgs
bosdyn_spot_api_msgs
bosdyn_spot_cam_api_msgs
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_mission_api_msgs-extras.cmake)
ament_package()
3 changes: 0 additions & 3 deletions bosdyn_mission_api_msgs/bosdyn_mission_api_msgs-extras.cmake

This file was deleted.

3 changes: 2 additions & 1 deletion bosdyn_mission_api_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_python</buildtool_depend>
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>

<depend>bosdyn_cmake_module</depend>

<depend>bosdyn-spot-cpp</depend>
<depend>bosdyn_api_msgs</depend>
<depend>bosdyn_graph_nav_api_msgs</depend>
Expand Down
11 changes: 8 additions & 3 deletions bosdyn_spot_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ find_package(ament_cmake REQUIRED)
find_package(bosdyn_api_msgs REQUIRED)
find_package(proto2ros REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

fetch_spot_sdk(spotsdk)
file(GLOB ${PROJECT_NAME}_PROTOS
Expand All @@ -32,6 +32,11 @@ proto2ros_vendor_package(${PROJECT_NAME}
ROS_DEPENDENCIES bosdyn_api_msgs
)

ament_export_dependencies(bosdyn_api_msgs)
ament_export_dependencies(
bosdyn_api_msgs
bosdyn_cmake_module
geometry_msgs
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_spot_api_msgs-extras.cmake)
ament_package()
3 changes: 0 additions & 3 deletions bosdyn_spot_api_msgs/bosdyn_spot_api_msgs-extras.cmake

This file was deleted.

3 changes: 2 additions & 1 deletion bosdyn_spot_api_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ Copyright (c) 2023 Boston Dynamics AI Institute LLC. All rights reserved.

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_python</buildtool_depend>
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>

<depend>bosdyn_cmake_module</depend>

<depend>bosdyn-spot-cpp</depend>
<depend>bosdyn_api_msgs</depend>
<depend>proto2ros</depend>
Expand Down
10 changes: 7 additions & 3 deletions bosdyn_spot_cam_api_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ find_package(ament_cmake REQUIRED)
find_package(bosdyn_api_msgs REQUIRED)
find_package(proto2ros REQUIRED)

find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
find_package(bosdyn_cmake_module REQUIRED)
find_package(bosdyn REQUIRED) # always after bosdyn_cmake_module

fetch_spot_sdk(spotsdk)
set(${PROJECT_NAME}_PROTO_DIR "${spotsdk_SOURCE_DIR}/protos")
Expand All @@ -25,6 +25,10 @@ proto2ros_vendor_package(${PROJECT_NAME}
ROS_DEPENDENCIES bosdyn_api_msgs
)

ament_export_dependencies(bosdyn_api_msgs)
ament_export_dependencies(
bosdyn_api_msgs
bosdyn_cmake_module
bosdyn
)

ament_package(CONFIG_EXTRAS bosdyn_spot_cam_api_msgs-extras.cmake)
ament_package()

This file was deleted.

Loading

0 comments on commit 9ca7a4b

Please sign in to comment.