[gn] Remove custom GN rules for abseil-cpp

Previously due to how Skia used Dawn, we had to maintain a separate
custom set of build rules for abseil-cpp. Since Skia has moved to
using the CMake build for Dawn, we can now remove these rules.

When moving to use the true abseil-cpp GN rules, I have migrated our
targets to depend on the top-level target, instead of manually
converting all of the targets we directly use, since at this point due
to transitive dependencies we are including most of abseil-cpp anyway.

I retained the custom config to suppress some warnings coming from
abseil-cpp, since otherwise I was getting build failures due to
'-Werror' and the abseil-cpp headers being included. This could be
worked around in other ways like suppressing these warnings at the
inclusion site, turning off the related warnings for the entire build
or if GN supported system libraries/headers, but I decided to just
retain our existing fix.

This requires rolling abseil-cpp and adding //tools/win in DEPS.
I have also adjusted various DEPS hashes related to the toolchain to
match those used by ANGLE. Since Windows was producing missing symbol
errors, so they likely had gotten out of sync, and ANGLE's builds are
working with abseil-cpp.

Roll third_party/abseil-cpp/ 9d692d669..e1655ca1a (21 commits)

https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/9d692d669253..e1655ca1acab

$ git log 9d692d669..e1655ca1a --date=short --no-merges --format='%ad %ae %s'
2025-11-04 rharrison Roll abseil_revision aed1a5e5f7..7374f9b0f4
2025-11-03 thakis Roll libc++ from 7ecf96c74a65 to d9c5c325fbce (7 revisions)
2025-10-31 jdoerrie [absl] Add absl/container:hash_container_defaults to absl_component_deps
2025-10-29 danilchap Roll abseil_revision 215d8a0e75..aed1a5e5f7
2025-10-28 aeubanks Roll clang+rust llvmorg-22-init-8940-g4d4cb757-84 : llvmorg-22-init-12326-g8a5f1533-1 / 15283f6fe95e5b604273d13a428bab5fc0788f5a-1 : ab925646fae038b02bd462cd328ae9eef1639236-1
2025-10-28 ricea Make //third_party/abseil-cpp:test_support a source_set
2025-10-24 ricea Add :absl dep to test_support target
2025-10-23 ricea absl::Hash support for base::StrongAlias
2025-10-22 danilchap Roll abseil_revision fc4481e968..215d8a0e75
2025-10-21 thakis Roll libc++ from c3fe874fc47f to 393de7301676 (7 revisions)
2025-10-16 thakis Roll libc++ from 89b5f99ebd15 to 6727fd85650a (8 revisions)
2025-10-08 danilchap Roll abseil_revision 6315c20271..fc4481e968
2025-10-07 victorvianna Supporting building abseil with C++23 on Windows
2025-10-07 thakis Roll libc++ from cc5f928de999 to 4b6389141910 (8 revisions)
2025-10-06 mbonadei Roll abseil_revision aef36c342b..6315c20271
2025-10-01 dloehr Roll libc++ from b77132b512d5 to 2c0b9511ee24 (5 revisions)
2025-09-24 danilchap Roll abseil_revision 768f75440f..aef36c342b
2025-09-19 thakis Roll libc++ from 92ba6814ab00 to c4fd1bc1c92b (5 revisions)
2025-09-18 thakis Roll libc++ from 7b8dc07adc0f to 92ba6814ab00 (11 revisions)
2025-09-17 mbonadei Roll abseil_revision dc242cce41..768f75440f
2025-09-16 thakis Roll libc++ from 0257666efcf9 to 7b8dc07adc0f (9 revisions)

Created with:
  roll-dep third_party/abseil-cpp

Issue: 456225724
Change-Id: I807edda6a1bdd41ba4eaad8e1bd3601f7e15be1d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/270095
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
21 files changed
tree: 2fa15ddf629d7f8d51a433dc1f4e1bd6fd33ff80
  1. .github/
  2. .vscode/
  3. build_overrides/
  4. docs/
  5. generator/
  6. include/
  7. infra/
  8. scripts/
  9. src/
  10. test/
  11. third_party/
  12. tools/
  13. webgpu-cts/
  14. .bazelrc
  15. .clang-format
  16. .clang-format-ignore
  17. .clang-tidy
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .style.yapf
  24. .vpython3
  25. AUTHORS
  26. BUILD.bazel
  27. BUILD.gn
  28. CMakeLists.txt
  29. CMakeSettings.json
  30. CODE_OF_CONDUCT.md
  31. codereview.settings
  32. CONTRIBUTING.md
  33. CPPLINT.cfg
  34. DEPS
  35. DIR_METADATA
  36. go.mod
  37. go.sum
  38. go_presubmit_support.py
  39. LICENSE
  40. OWNERS
  41. PRESUBMIT.py
  42. README.chromium
  43. README.md
  44. unsafe_buffers_paths.txt
  45. WATCHLISTS
  46. WORKSPACE.bazel
README.md

Build Status Matrix Space

Dawn, a WebGPU implementation

Dawn is an open-source and cross-platform implementation of the 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 C/C++ headers that applications and other building blocks use.
    • The webgpu.h version that Dawn implements.
    • A C++ wrapper for the webgpu.h.
  • A “native” implementation of WebGPU using platforms' GPU APIs: D3D12, Metal, Vulkan and OpenGL. See per API support for more details.
  • A client-server implementation of WebGPU for applications that are in a sandbox without access to native drivers
  • Tint is a compiler for the WebGPU Shader Language (WGSL) that can be used in standalone to convert shaders from and to WGSL.

Helpful links:

Documentation table of content

Developer documentation:

User documentation: (TODO, figure out what overlaps with the webgpu.h docs)

License

BSD 3-Clause License, please see LICENSE.

Disclaimer

This is not an officially supported Google product.