Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Raspberry Pi bazel cross compilation rules

This contains a set of rules to use for cross compiling C++ to a Raspberry Pi using clang. It includes a minimal sysroot, and only needs a functioning clang compiler.

  • travis-ci Build Status

Example Usage

In tools/workspace/rpi_bazel/repository.bzl

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")


def rpi_bazel_repository(name):
    commit = "XXX"
    http_archive(
        name = name,
        url = "https://github.com/mjbots/rpi_bazel/archive/{}.zip".format(commit),
        sha256 = "XXX",
        strip_prefix = "rpi_bazel-{}".format(commit),
    )

At least an empty tools/workspace/rpi_bazel/BUILD is required.

In tools/workspace/default.bzl:

load("//tools/workspace/rpi_bazel:repository.bzl", "rpi_bazel_repository")

def add_default_repositories(excludes = []):
    if "rpi_bazel" not in excludes:
        rpi_bazel_repository(name = "rpi_bazel")

At least an empty tools/workspace/BUILD is required.

In WORKSPACE:

load("//tools/workspace:default.bzl", "add_default_repositories")

add_default_repositories()

load("@rpi_bazel//tools/workspace:default.bzl",
     rpi_bazel_add = "add_default_repositories")
rpi_bazel_add()

In tools/bazel.rc

build --crosstool_top=@rpi_bazel//tools/cc_toolchain:toolchain
test --crosstool_top=@rpi_bazel//tools/cc_toolchain:toolchain

build:pi --cpu=armeabihf
test:pi --cpu=armeabihf

build:pi --compiler=clang
test:pi --compiler=clang

Then you can build with:

bazel build --config=pi //...

About

Rasbperry pi bazel cross compile rules

Resources

License

Releases

No releases published

Packages

No packages published