| commit | 4090b7d2d2cb4f3e8ef448aeaca55c75a55b41ca | [log] [tgz] |
|---|---|---|
| author | danakj <danakj@chromium.org> | Tue Oct 24 17:49:01 2023 +0000 |
| committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Oct 24 17:49:01 2023 +0000 |
| tree | 7dbff550dcb63821c1e61fe9c5b342f798bfd021 | |
| parent | 2d123d0dfdc67af1dcbabd178be8073726b67524 [diff] |
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>
Dawn is an open-source and cross-platform implementation of the work-in-progress WebGPU standard. More precisely it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.
Dawn provides several WebGPU building blocks:
webgpu.h version that Dawn implements.webgpu.h.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
(TODO)
BSD 3-Clause License, please see LICENSE.
This is not an officially supported Google product.