Add support for the Rust toolchain
To enable Rust build targets in standalone dawn:
- Add `checkout_rust: True` to the gclient `custom_vars` section. As
it defaults to false:
"custom_vars": {
"checkout_rust": True,
}
- Set `enable_rust = true` in GN args, as it also defaults to false.
- Run gclient sync
Then building `rust_build_tests` will build test targets in
//build/rust/tests, which rely on and verify the functioning of
the Rust toolchain.
Make new rust targets by using the GN templates in //build/rust.
In the chromium build, Rust build targets that use the templates
from //build/rust will just work.
------
Dependent steps that are already done:
1) The //tools/rust repo needs to be created in
https://bugs.chromium.org/p/chromium/issues/detail?id=1494128
2) Then, we should remove the checkout_tools_rust DEPS var,
3) And update the tools/clang and tools/rust revisions so that they
are compatible.
4) Roll the chromium //build changes that were required in from
https://chromium-review.googlesource.com/c/chromium/src/+/4956874
and
https://chromium-review.googlesource.com/c/chromium/src/+/4966201
5) The clang roll causes clang-cl to warn on use of offsetof, but it
does not define __GNUC__, which is used to remove the warning. So
also remove the warning when __clang__ is defined.
Bug: chromium:1494118
Change-Id: I5e280090ec950a1da9f91e2e4717925ce4b2eaa6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/157120
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: danakj <danakj@chromium.org>
diff --git a/.gitignore b/.gitignore
index 80941cc..b268054 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,6 +36,7 @@
/third_party/node-api-headers
/third_party/partition_alloc
/third_party/protobuf
+/third_party/rust-toolchain
/third_party/swiftshader
/third_party/vulkan-deps
/third_party/vulkan_memory_allocator
@@ -45,6 +46,7 @@
/tools/cmake*
/tools/golang
/tools/memory
+/tools/rust
/out
# Tint test validation cache file