amr-ros-k4/pixi.toml

55 lines
4.0 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"] }
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"] }