Skip to content

aws-samples/snap-xcompile

Snap xCompile

Tool to cross-compile ROS snaps for x86_64 and arm64 machines using remote AWS buildfarms.

Overview

Snap xCompile takes the idea of remote builds and uses a variety of AWS services to build snaps while keeping your source code private.

The tool spins up a remote server hosted on AWS, gathers all relevant applications files with their dependencies, executes the snapping process, and fetches the completed snap to the host workstation. The result is a seamless one-step method to cross-compile snaps that requires zero configuration effort from the user.

Currently, Snap xCompile supports snapping for x86-64 and arm64 targets.

Snap xCompile Pipeline

Prerequisties

Example Usage

  1. Download the project to your local system.
git clone https://github.com/aws-samples/snap-xcompile.git
  1. Give execution permission to the shell script.
cd snap-xcompile/

chmod +x src/sxc.sh
  1. Snap example ROS project for the desired target architecture (arm64 or x86_64).
./src/sxc.sh --source examples/ros_hello_world/ --arch arm64

This step will take several minutes to finish. Go ahead and take that much-needed break in the meantime!

Snap xCompile Demo

  1. The desired snap will be located in your working directory once the script finishes execution.
ls .

File List

Test Deployment

  1. Transfer snap to your target system.

  2. Install snap. Replace FILENAME with name of the snap produced by Snap xCompile.

sudo snap install --devmode FILENAME.snap

snap list

Snap List

  1. Invoke launch function from the ROS snap.
hello-world.launch

Test Deployment

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.