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