[bazel][rust] Add crates_vendor target

This target will be used to generate BUILD.bazel files for Rust
libraries in third_party/rust_crates.

Users are not expected to build this target directly. Instead, they
will keep invoking `fx update-rustc-third-party`, which takes care of
laying out a Bazel workspace and invoke this target there.

This setup uses the following vendored/prebuilt tools:

* bazel
* buildifier
* Rust toolchain (rustc, cargo, etc.)
* rules_rust

Bazel will fetch other dependencies from upstream, this includes Rust
crates needed to bootstrap crates_vendor (build the cargo_bazel binary).

This only supports running on Linux hosts.

Fixed: 358312539

Change-Id: I93cafb39a9a78ce94f73c0bd061238930a9f5f3a
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1108954
Reviewed-by: David Turner <digit@google.com>
Commit-Queue: Jay Zhuang <jayzhuang@google.com>
4 files changed
tree: 60fc8d39af842f7c8c7290f9e9ced225913339ad
  1. .helix/
  2. boards/
  3. build/
  4. bundles/
  5. docs/
  6. examples/
  7. infra/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .editorconfig
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .ignore
  24. analysis_options.yaml
  25. AUTHORS
  26. BUILD.gn
  27. CODE_OF_CONDUCT.md
  28. CONTRIBUTING.md
  29. fuchsia.code-workspace
  30. LICENSE
  31. OWNERS
  32. PATENTS
  33. pyproject.toml
  34. pyrightconfig.json
  35. README.md
  36. rustfmt.toml
  37. shac.star
  38. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.