blob: 4455250aa350eb18618cae1f05791015489063a2 [file] [log] [blame]
# Copyright 2022 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Note: This file is intentionally not used by any other BUILD.gn in Dawn.
# Instead, Chromium depends directly on this file to build the WebGPU CTS.
# Scripts called from this file assume Dawn is checked out inside Chromium.
group("webgpu-cts") {
public_deps = [
":compile_src",
":copy_resources",
":verify_gen_ts_dep_list",
]
}
list_from_ts_sources_txt = read_file("ts_sources.txt", "list lines")
ts_source_inputs = [ "../../webgpu-cts/tsconfig.json" ]
foreach(file, list_from_ts_sources_txt) {
ts_source_inputs += [ "../../webgpu-cts/$file" ]
}
js_outputs = []
foreach(ts_file, list_from_ts_sources_txt) {
js_file = string_replace(ts_file, ".ts", ".js")
js_node_file = string_replace(js_file, "src/", "src-node/")
js_outputs += [ "$target_gen_dir/../../webgpu-cts/$js_file" ]
if (js_node_file != "src-node/common/runtime/wpt.js" &&
js_node_file != "src-node/common/runtime/standalone.js" &&
js_node_file != "src-node/common/runtime/helper/test_worker.js" &&
js_node_file !=
"src-node/webgpu/web_platform/worker/worker_launcher.js") {
js_outputs += [ "$target_gen_dir/../../webgpu-cts/$js_node_file" ]
}
}
action("compile_src") {
script = "scripts/compile_src.py"
inputs = [
"//third_party/node/node_modules/typescript/lib/tsc.js",
"//third_party/node/node.py",
"scripts/tsc_ignore_errors.py",
] + ts_source_inputs
outputs = js_outputs
data = js_outputs
args = [ rebase_path("$target_gen_dir/../../webgpu-cts", root_build_dir) ]
}
list_from_resource_files_txt = read_file("resource_files.txt", "list lines")
resource_file_inputs = []
foreach(file, list_from_resource_files_txt) {
resource_file_inputs += [ "$file" ]
}
copy("copy_resources") {
sources = []
data = []
foreach(resource_file, resource_file_inputs) {
sources += [ "../../webgpu-cts/src/resources/$resource_file" ]
# Copy into resources/, instead of src/resources/, because compile_src
# wipes src/ before running.
data += [ "$target_gen_dir/../../webgpu-cts/resources/$resource_file" ]
}
outputs =
[ "$target_gen_dir/../../webgpu-cts/resources/{{source_file_part}}" ]
}
action("verify_gen_ts_dep_list") {
script = "scripts/gen_ts_dep_lists.py"
inputs = [
# TODO(kainino): Make sure this gets retriggered when the CTS dep changes.
"resource_files.txt",
"ts_sources.txt",
]
outputs = [ "$target_out_dir/run_$target_name.stamp" ]
args = [
"--check",
"--stamp",
rebase_path(outputs[0], root_build_dir),
]
}