58 lines
4.4 KiB
TOML
58 lines
4.4 KiB
TOML
[workspace]
|
|
name = "blockly-ros2-controller"
|
|
version = "0.1.0"
|
|
channels = ["conda-forge", "robostack-jazzy"]
|
|
platforms = ["linux-64", "linux-aarch64"]
|
|
|
|
# Shared conda dependencies — available on both x86_64 and aarch64
|
|
[dependencies]
|
|
python = ">=3.11"
|
|
ros-jazzy-rclpy = "*"
|
|
ros-jazzy-rosidl-default-runtime = "*"
|
|
ros-jazzy-rosidl-default-generators = "*"
|
|
ros-jazzy-action-msgs = "*"
|
|
colcon-common-extensions = "*"
|
|
pytest = "*"
|
|
|
|
# Desktop-only conda dependencies (not available / not needed on aarch64)
|
|
# pyqtwebengine provides the Qt backend that pywebview needs on Linux.
|
|
[target.linux-64.dependencies]
|
|
ros-jazzy-desktop = "*"
|
|
nodejs = ">=18"
|
|
pyqtwebengine = "*"
|
|
qtpy = "*"
|
|
|
|
[target.linux-aarch64.dependencies]
|
|
ros-jazzy-ros-base = "*"
|
|
ros-jazzy-rclcpp = "*" # C++ ROS2 client library for gpio_node
|
|
libgpiod = "*" # C/C++ libgpiod (gpiodcxx) for GPIO hardware access
|
|
|
|
# pywebview is only on PyPI, not conda-forge.
|
|
# Desktop-only — Raspberry Pi only runs Executor Node.
|
|
[target.linux-64.pypi-dependencies]
|
|
pywebview = "*"
|
|
|
|
[tasks]
|
|
build-interfaces = "colcon build --symlink-install --packages-select blockly_interfaces"
|
|
|
|
[target.linux-64.tasks]
|
|
build-executor = { cmd = "colcon build --symlink-install --packages-select blockly_executor", depends-on = ["build-interfaces"] }
|
|
build-app = { cmd = "colcon build --symlink-install --packages-select blockly_app", depends-on = ["build-interfaces"] }
|
|
build = { cmd = "colcon build --symlink-install", depends-on = ["build-interfaces"] }
|
|
executor = { cmd = "bash -c 'source install/setup.bash && ros2 run blockly_executor executor_node'", depends-on = ["build-executor"] }
|
|
executor-hw = { cmd = "bash -c 'source install/setup.bash && ros2 run blockly_executor executor_node --ros-args -p use_real_hardware:=true'", depends-on = ["build-executor"] }
|
|
app = { cmd = "bash -c 'source install/setup.bash && python -m blockly_app.app'", depends-on = ["build-app"] }
|
|
test = { cmd = "bash -c 'source install/setup.bash && PYTHONPATH=$PYTHONPATH:src/blockly_executor pytest src/blockly_executor/test/ -v'", depends-on = ["build-interfaces"] }
|
|
build-bringup = { cmd = "colcon build --symlink-install --packages-select amr_bringup", depends-on = ["build-interfaces"] }
|
|
launch-blockly = { cmd = "bash -c 'source install/setup.bash && ros2 launch amr_bringup blockly.launch.py'", depends-on = ["build-bringup", "build-executor", "build-app"] }
|
|
launch-blockly-hw = { cmd = "bash -c 'source install/setup.bash && ros2 launch amr_bringup blockly_hw.launch.py'", depends-on = ["build-bringup", "build-executor", "build-app"] }
|
|
setup-ui = "npm install blockly gridstack && mkdir -p src/blockly_app/blockly_app/ui/vendor && cp node_modules/blockly/blockly.min.js src/blockly_app/blockly_app/ui/vendor/ && cp node_modules/blockly/javascript_compressed.js src/blockly_app/blockly_app/ui/vendor/ && cp node_modules/blockly/blocks_compressed.js src/blockly_app/blockly_app/ui/vendor/ && cp node_modules/blockly/msg/en.js src/blockly_app/blockly_app/ui/vendor/ && cp node_modules/gridstack/dist/gridstack-all.js src/blockly_app/blockly_app/ui/vendor/ && cp node_modules/gridstack/dist/gridstack.min.css src/blockly_app/blockly_app/ui/vendor/"
|
|
|
|
[target.linux-aarch64.tasks]
|
|
setup-dep = { cmd = "sudo apt update && sudo apt install -y liblttng-ust-dev lttng-tools libgpiod-dev gpiod i2c-tools"}
|
|
build-gpio = { cmd = "colcon build --symlink-install --packages-select gpio_node", depends-on = ["setup-dep", "build-interfaces"] }
|
|
gpio-node = { cmd = "bash -c 'source install/setup.bash && ros2 run gpio_node gpio_node'", depends-on = ["build-gpio"] }
|
|
build-pca9685 = { cmd = "colcon build --symlink-install --packages-select pca9685_node", depends-on = ["setup-dep", "build-interfaces"] }
|
|
pca9685-node = { cmd = "bash -c 'source install/setup.bash && ros2 run pca9685_node pca9685_node'", depends-on = ["build-pca9685"] }
|
|
build-as5600 = { cmd = "colcon build --symlink-install --packages-select as5600_node", depends-on = ["setup-dep", "build-interfaces"] }
|
|
as5600-node = { cmd = "bash -c 'source install/setup.bash && ros2 run as5600_node as5600_node'", depends-on = ["build-as5600"] } |