Skip to main content
In this section, let’s deploy an application to run on a Raspberry PI robot, which is an ARM architecture.

Introducing cross-builds

Bazel understands three different platforms:
  1. The “host” platform is where Bazel runs, along with “repository rules” which install dependencies.
  2. The “exec” platform is where build actions execute. It may be different from “host” when Remote Build Execution is used.
  3. The “target” platform is where the built application will execute.
A “cross build” is when the target platform differs from the host and/or exec platform. Non-pure Python packages are distributed in different formats:
  • Binary “wheels” containing machine code for a specific CPU architecture and operating system
  • Source distributions (“sdist”) where the machine code must be compiled by the user
Non-pure Python packages are a challenge with cross-builds, because we can’t download a binary wheel or compile an sdist for the host/exec platform.

TODO