dawn-cmake/tools
Elie Michel 9ae8ed2f62 Add fetch_dawn_dependencies
This adds a DAWN_FETCH_DEPENDENCIES CMake option (default: OFF) that if
turned ON fetches dependencies using a basic Python script that reads
DEPS files instead of requiring the installation of depot_tools by all
projects that depend on Dawn.

The script is not equivalent to gclient as it is not aware of advanced
configuration options (it always gets the list of dependencies that is
hardcoded at the beginning) but at least for a regular use of Dawn as a
dependency that provides a WebGPU backend (the intended use of this
DAWN_FETCH_DEPENDENCIES option) it is enough.

This is an attempt at merging upstream [this
repository](https://github.com/eliemichel/WebGPU-distribution/tree/dawn)
that I currently recommend in [Learn WebGPU for native
C++](https://eliemichel.github.io/LearnWebGPU/getting-started/hello-webgpu.html)
as a shallow intermediary to avoid requiring depot_tools (and turn some
options on/off).

By default, the script performs shallow clones, getting only the very
commit that is needed. This is a great improvement over naive clone:

                | Regular | Shallow |
----------------|---------|---------|
Downloaded size |  194 MB |  15 MB  |
Stored size     |  294 MB | 103 MB  |

Change-Id: Iaedb4af78036a1696b68787c36f1d3d70e18ba2c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/131750
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-12 20:19:41 +00:00
..
cfi Add tools/cfi/ignores.txt 2022-07-25 15:56:38 +00:00
memory/asan Fix is_asan build (at least on Mac) 2020-04-06 22:27:02 +00:00
src Add dawn-try-mac-intel-exp to CTS rolls 2023-05-11 21:51:46 +00:00
ubsan gn: Add empty ubsan ignore list 2022-07-07 16:34:01 +00:00
PRESUBMIT.py Add go tests to presubmit 2022-09-06 18:20:33 +00:00
check-no-crlf Kokoro: Ensure that no CRLF creep in 2022-04-08 16:55:56 +00:00
fetch_dawn_dependencies.py Add fetch_dawn_dependencies 2023-05-12 20:19:41 +00:00
format tools/format: Format .gn files too 2023-02-05 12:38:23 +00:00
lint tools: Parallelize ./tools/format 2022-12-06 18:29:08 +00:00
roll-all roll-all: Fix args for GNU find(1) 2020-11-25 21:08:37 +00:00
run Kokoro: Fix windows builds 2023-02-05 10:52:57 +00:00
setup-build tools/setup-build: Support x86 2022-10-13 12:55:42 +00:00
tint-generate-coverage tint: TINT_EMIT_COVERAGE -> DAWN_EMIT_COVERAGE 2023-01-04 18:06:49 +00:00