# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Generates a credits HTML file, based on the third-party dependencies of
# a provided GN target.
# Parameters:
# gn_target: The target whose dependencies should be listed in the credits.
# credits_gen_dir: Directory (without trailing slash) where the generated
# HTML will be placed, together with the copied JSS+CS files.
template("remoting_credits") {
_credits_source_dir = "//remoting/credits"
action("${target_name}__generate") {
# Generate credits.html in a temporary location, so it can be copied into
# the final location - see comment for 'copy' target.
_credits_html_file = "$target_gen_dir/$target_name/credits.html"
_credits_template = "$_credits_source_dir/credits.tmpl"
_credits_entry_template = "$_credits_source_dir/credits_entry.tmpl"
script = "//tools/licenses/licenses.py"
depfile = "$target_gen_dir/$target_name.d"
inputs = [
_credits_template,
_credits_entry_template,
]
outputs = [ _credits_html_file ]
args = [
"credits",
rebase_path(_credits_html_file, root_build_dir),
"--file-template",
rebase_path(_credits_template, root_build_dir),
"--entry-template",
rebase_path(_credits_entry_template, root_build_dir),
"--depfile",
rebase_path(depfile, root_build_dir),
"--gn-target",
invoker.gn_target,
"--gn-out-dir",
".",
]
}
# This target purposefully copies the generated HTML file (instead of
# directly generating the HTML file into credits_gen_dir), so that the caller
# can use get_target_outputs(:target_name) and the HTML file will be
# included in the returned list along with the JS+CSS files.
copy(target_name) {
_generate_target = ":${target_name}__generate"
_credits_gen_dir = invoker.credits_gen_dir
sources = [
"$_credits_source_dir/credits_css.css",
"$_credits_source_dir/credits_js.js",
] + get_target_outputs(_generate_target)
outputs = [ "$_credits_gen_dir/{{source_file_part}}" ]
deps = [ _generate_target ]
}
}