Index: remoting/credits/credits.gni |
diff --git a/remoting/credits/credits.gni b/remoting/credits/credits.gni |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5b53725a683acf75ad1433a11d1b0d5443f81125 |
--- /dev/null |
+++ b/remoting/credits/credits.gni |
@@ -0,0 +1,63 @@ |
+# Copyright 2017 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. |
+ |
+# 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.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", |
+ rebase_path(root_build_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, |
+ ] |
+ } |
+} |