| # 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), |
| ] |
| } |