Skip to content

Commit 96f7dd9

Browse files
committed
fix: retain original Dawn expected-output validation metadata
1 parent dfef797 commit 96f7dd9

2 files changed

Lines changed: 53 additions & 1 deletion

File tree

‎bcr/overlay/source/native/platform_inputs.json‎

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111193,6 +111193,7 @@
111193111193
"gn_deps": [],
111194111194
"script": "third_party/dawn/generator/opengl_loader_generator.py",
111195111195
"inputs": [
111196+
"//out/bazel-import/gen/third_party/dawn/opengl_loader_gen.expected_outputs",
111196111197
"//third_party/dawn/generator/dawn_gpu_info_generator.py",
111197111198
"//third_party/dawn/generator/dawn_json_generator.py",
111198111199
"//third_party/dawn/generator/dawn_version_generator.py",
@@ -111404,6 +111405,7 @@
111404111405
"gn_deps": [],
111405111406
"script": "third_party/dawn/generator/dawn_json_generator.py",
111406111407
"inputs": [
111408+
"//out/bazel-import/gen/third_party/dawn/utils_gen.expected_outputs",
111407111409
"//third_party/dawn/generator/dawn_gpu_info_generator.py",
111408111410
"//third_party/dawn/generator/dawn_json_generator.py",
111409111411
"//third_party/dawn/generator/dawn_version_generator.py",
@@ -120641,6 +120643,38 @@
120641120643
]
120642120644
}
120643120645
},
120646+
"literal_metadata": {
120647+
"//out/bazel-import/gen/third_party/dawn/opengl_loader_gen.expected_outputs": {
120648+
"source": "third_party/dawn/generator/generator_lib.gni",
120649+
"target": "//third_party/dawn/src/dawn/native:opengl_loader_gen",
120650+
"outputs": [
120651+
"src/dawn/native/opengl/OpenGLFunctionsBase_autogen.cpp",
120652+
"src/dawn/native/opengl/OpenGLFunctionsBase_autogen.h",
120653+
"src/dawn/native/opengl/opengl_platform_autogen.h"
120654+
]
120655+
},
120656+
"//out/bazel-import/gen/third_party/dawn/utils_gen.expected_outputs": {
120657+
"source": "third_party/dawn/generator/generator_lib.gni",
120658+
"target": "//third_party/dawn/src/dawn/native:utils_gen",
120659+
"outputs": [
120660+
"src/dawn/native/ChainUtils_autogen.h",
120661+
"src/dawn/native/ChainUtils_autogen.cpp",
120662+
"src/dawn/native/Features_autogen.h",
120663+
"src/dawn/native/Features_autogen.inl",
120664+
"src/dawn/native/ProcTable.cpp",
120665+
"src/dawn/native/dawn_platform_autogen.h",
120666+
"src/dawn/native/wgpu_structs_autogen.h",
120667+
"src/dawn/native/wgpu_structs_autogen.cpp",
120668+
"src/dawn/native/ValidationUtils_autogen.h",
120669+
"src/dawn/native/ValidationUtils_autogen.cpp",
120670+
"src/dawn/native/webgpu_absl_format_autogen.h",
120671+
"src/dawn/native/webgpu_absl_format_autogen.cpp",
120672+
"src/dawn/native/webgpu_StreamImpl_autogen.cpp",
120673+
"src/dawn/native/ObjectType_autogen.h",
120674+
"src/dawn/native/ObjectType_autogen.cpp"
120675+
]
120676+
}
120677+
},
120644120678
"execution_tools": [
120645120679
"//components/url_formatter/spoof_checks/top_domains:top_domain_generator",
120646120680
"//net/tools/root_store_tool:root_store_tool",
@@ -148328,6 +148362,8 @@
148328148362
"//out/bazel-import/gen/services/viz/public/mojom/singleplanar_format.typemap_config": "[\n\n]",
148329148363
"//out/bazel-import/gen/services/viz/public/mojom/singleplanar_format__generator.rsp": "../../services/viz/public/mojom/compositing/internal/singleplanar_format.mojom\n",
148330148364
"//out/bazel-import/gen/services/viz/public/mojom/singleplanar_format_shared__generator.rsp": "../../services/viz/public/mojom/compositing/internal/singleplanar_format.mojom\n",
148365+
"//out/bazel-import/gen/third_party/dawn/opengl_loader_gen.expected_outputs": "src/dawn/native/opengl/OpenGLFunctionsBase_autogen.cpp\nsrc/dawn/native/opengl/OpenGLFunctionsBase_autogen.h\nsrc/dawn/native/opengl/opengl_platform_autogen.h\n",
148366+
"//out/bazel-import/gen/third_party/dawn/utils_gen.expected_outputs": "src/dawn/native/ChainUtils_autogen.h\nsrc/dawn/native/ChainUtils_autogen.cpp\nsrc/dawn/native/Features_autogen.h\nsrc/dawn/native/Features_autogen.inl\nsrc/dawn/native/ProcTable.cpp\nsrc/dawn/native/dawn_platform_autogen.h\nsrc/dawn/native/wgpu_structs_autogen.h\nsrc/dawn/native/wgpu_structs_autogen.cpp\nsrc/dawn/native/ValidationUtils_autogen.h\nsrc/dawn/native/ValidationUtils_autogen.cpp\nsrc/dawn/native/webgpu_absl_format_autogen.h\nsrc/dawn/native/webgpu_absl_format_autogen.cpp\nsrc/dawn/native/webgpu_StreamImpl_autogen.cpp\nsrc/dawn/native/ObjectType_autogen.h\nsrc/dawn/native/ObjectType_autogen.cpp\n",
148331148367
"//out/bazel-import/gen/ui/base/cursor/mojom/cursor_type.build_metadata": "{\n \"deps\": [\n\n ],\n \"sources\": [\n \"../../../../../../../ui/base/cursor/mojom/cursor_type.mojom\"\n ]\n}",
148332148368
"//out/bazel-import/gen/ui/base/cursor/mojom/cursor_type__generate_message_ids.rsp": "../../ui/base/cursor/mojom/cursor_type.mojom\n",
148333148369
"//out/bazel-import/gen/ui/base/cursor/mojom/cursor_type__parser_action.rsp": "../../ui/base/cursor/mojom/cursor_type.mojom\n",

‎tools/capture_platform.py‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ def physical(path):
100100
return chromium / path
101101

102102
files, generated, headers, used_shared = set(), {}, {}, set()
103+
literal_metadata = {}
103104
producers = {}
104105
for label in sorted(seen):
105106
target = targets[label]
@@ -120,6 +121,8 @@ def physical(path):
120121
def input_file(path):
121122
if path in tools:
122123
return
124+
if path in generated:
125+
return
123126
if path in shared:
124127
used_shared.add(path)
125128
elif path.startswith(BUILD):
@@ -187,6 +190,19 @@ def dependency_inputs(label):
187190
raise ValueError("Untranslated platform template path")
188191
root = physical(directory[6:])
189192
inputs.update("//" + directory[6:] + "/" + path.relative_to(root).as_posix() for path in source_files(root) if path.is_file())
193+
if "--expected-outputs-file" in args:
194+
extraction_label = label.removesuffix("__json_tarball")
195+
extraction = targets[extraction_label]
196+
if not label.endswith("__json_tarball") or extraction.get("script") != "//third_party/dawn/generator/extract_json.py" or extraction["args"][0] != args[args.index("--output-json-tarball") + 1]:
197+
raise ValueError("Untranslated original Dawn output declaration")
198+
prefix = BUILD + extraction["args"][1] + "/"
199+
if any(not output.startswith(prefix) for output in extraction["outputs"]):
200+
raise ValueError("Original Dawn output escapes generation root")
201+
path = BUILD + args[args.index("--expected-outputs-file") + 1]
202+
outputs = [output.removeprefix(prefix) for output in extraction["outputs"]]
203+
generated[path] = "\n".join(outputs) + "\n"
204+
literal_metadata[path] = dict(source="third_party/dawn/generator/generator_lib.gni", target=extraction_label, outputs=outputs)
205+
inputs.add(path)
190206
if target["script"] == "//mojo/public/tools/bindings/mojom_bindings_generator.py":
191207
template = {"c++": "cpp_templates.zip", "typescript": "ts_templates.zip", "javascript": "js_templates.zip"}[args[args.index("-g") + 1]]
192208
inputs.add(BUILD + args[args.index("--bytecode_path") + 1] + "/" + template)
@@ -249,7 +265,7 @@ def dependency_inputs(label):
249265
if not physical(path).is_file():
250266
raise ValueError("Missing original platform input: " + path)
251267
used = {dep for label in seen for dep in targets[label].get("deps", []) if dep in external}
252-
return dict(roots=ROOTS, graph_sha256=digest, source_revisions=revisions, names=names, libraries=libraries, actions=actions, metadata=metadata, execution_tools=sorted(set(tools.values())), execution_closure=sorted(execution_closure), producers=producers, headers=headers, files=sorted(files), external_files={path: shared[path] for path in sorted(used_shared)}, external={label: external[label] for label in sorted(used)}, generated_files=generated, toolchain_deps=sorted(TOOLCHAIN), sdk_libraries=sorted(SDK_LIBS))
268+
return dict(roots=ROOTS, graph_sha256=digest, source_revisions=revisions, names=names, libraries=libraries, actions=actions, metadata=metadata, literal_metadata=literal_metadata, execution_tools=sorted(set(tools.values())), execution_closure=sorted(execution_closure), producers=producers, headers=headers, files=sorted(files), external_files={path: shared[path] for path in sorted(used_shared)}, external={label: external[label] for label in sorted(used)}, generated_files=generated, toolchain_deps=sorted(TOOLCHAIN), sdk_libraries=sorted(SDK_LIBS))
253269

254270

255271
def main():

0 commit comments

Comments
 (0)