#!/usr/bin/env bash set -euo pipefail if [[ ! -f /opt/ros/humble/setup.bash ]]; then echo 'NOT RUN: ROS2 Humble is not installed; no ROS compilation claim.' >&2 exit 2 fi # Humble's generated environment hooks inspect optional unset variables. set +u source /opt/ros/humble/setup.bash set -u command -v colcon >/dev/null || { echo 'colcon is required' >&2; exit 2; } bt_repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)" cd "$bt_repo_root" # Install/build upstream BehaviorTree.CPP 4.10.0 separately and source its prefix. # EXACT REQUIRED intentionally rejects an incompatible system BT.CPP package. colcon build --base-paths ros2 --packages-up-to bt_executor robobrain_services bt_mock_servers --event-handlers console_direct+ colcon test --packages-select navigation_interfaces bt_skill_interfaces bt_executor --event-handlers console_direct+ colcon test-result --verbose