blob: 9caeaa7c43987c0f8758a2282467d5671940675c [file] [log] [blame]
# Copyright 2020 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.
import("../../../all_devtools_modules.gni")
import("../../../third_party/typescript/typescript.gni")
import("./copy.gni")
import("./vars.gni")
template("devtools_module") {
_typescript_target_name = target_name + "-typescript"
_typescript_target_dep = ":$_typescript_target_name"
ts_library(_typescript_target_name) {
forward_variables_from(invoker,
[
"sources",
"deps",
])
# To make sure that this target can be depended upon by other TypeScript targets,
# we have to name it the `target_name`. However, we can't name this `ts_library` the
# `target_name`, as the buildgraph requires the `copy_gen__to_resources` to happen *after*
# `ts_library` is finished.
typescript_config_name = invoker.target_name
}
if (is_debug) {
copy_gen_to_resources(target_name) {
sources = filter_include(get_target_outputs(_typescript_target_dep),
[
"*.js",
"*.map",
])
public_deps = [ _typescript_target_dep ]
visibility = invoker.visibility + [ ":*" ]
}
_target_outputs = get_target_outputs(":" + target_name + "-copy")
_filtered_target_outputs =
filter_exclude(
filter_exclude(_target_outputs, generated_typescript_modules),
[ "*.map" ])
assert(
_filtered_target_outputs == [],
"$_filtered_target_outputs are not listed in all_typescript_module_sources")
} else {
group(target_name) {
public_deps = [ _typescript_target_dep ]
visibility = invoker.visibility + [ ":*" ]
}
}
}
set_defaults("devtools_module") {
visibility = []
}