Cody P Schafer fa53e7a70d rust.inc: normalize to expanded 4 space tabs
I had previously mixed using hard tabs, 8 spaces, and 4 spaces (due to
editor defaulting to hard tabs and the occasional change to 4 spaces to
work on python code).

Try to avoid that with a vim modeline
2016-02-17 21:20:32 -05:00
2014-10-25 12:50:28 -04:00
2016-02-01 20:54:20 +00:00
2014-10-25 12:50:28 -04:00

Introduction

This openembedded layer provides the rust compiler, tools for building packages (cargo), and a few example projects.

What works:

  • MACHINE="beaglebone" (TARGET_SYS=arm-poky-linux-gnueabi)
  • Building rust-native, rust-cross, rust-hello-world, cargo-native
  • Running/using all of these (including rust-hello-world)

What doesn't:

  • Probably some of the untested things

What's untested:

  • rust (built for target)
  • Other TARGETs

Common issues when packaging things using cargo

You may run into errors similar to:

| src/lib.rs:12:1: 12:35 error: can't find crate for `ffi`
| src/lib.rs:12 extern crate "openssl-sys" as ffi;
|               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Where a "-sys" crate (or other crate) is not found. These are typically caused by a crate's Cargo.toml including triplet-specific dependencies and then using the crate based on a feature (most often, #[cfg(unix)]). Until cargo and it's ecosystem get their act together, you'll need to supply patches to the misbehaving packages. See recipies/cargo/cargo_*.bb for an example of how to do this.

TODO

  • -crosssdk and -buildsdk packages
  • Upstream local rustc patches for libdir and bindir support
  • add bitbake fetch support for crates.io
  • add required cargo package registry clones in SRC_URI to prevent the need for network when building.

Pitfalls

  • TARGET_SYS must be different from BUILD_SYS. This is due to the way configuration options are tracked for different targets.

Dependencies

On the host: unknown

On the target: unknown

Maintainer(s) & Patch policy

Open a Pull Request.

Generally, I try to support the latest master of poky. I'm happy to support older versions too by applying backwards compat patches as long as I don't need to maintain a seperate branch. Of course, others are welcome to create forks to support their individual needs.

MIT OR Apache-2.0 - Same as rust

Description
OpenEmbedded/Yocto layer for Rust and Cargo
Readme 1.6 MiB
Languages
PHP 56.5%
BitBake 17%
Shell 9.1%
Python 7.5%
Pawn 5.3%
Other 4.6%