Index: chrome/version.gni |
diff --git a/chrome/version.gni b/chrome/version.gni |
index cc8d96a4c665d7f99bd2d8dc4f262dfe80a862b4..457c6713144c375f5a7079228e000a0d161ea2e3 100644 |
--- a/chrome/version.gni |
+++ b/chrome/version.gni |
@@ -6,28 +6,46 @@ |
# an output file. This is used for generating various forms of files that |
# incorporate the product name and version. |
# |
-# This template automatically includes VERSION, LASTCHANGE, and BRANDING, |
+# This template automatically includes VERSION, LASTCHANGE, and BRANDING. It |
+# automatically uses the template file . |
+# GYP parameterizes this template file but all current invocations use this |
+# same one. If in the future we need to set it, this should be added as an |
+# optional argument. |
+# |
+# In GYP this is a rule that runs once per ".ver" file. In GN this just |
+# processes one file per invocation of the template so you may have to have |
+# multiple targets. |
# |
# Parameters: |
-# source: |
-# File name of source template file to read. |
+# sources (optional): |
+# List of file names to read. In GYP, this should list the 'source' (see |
+# above) as well as any extra_variable_files. |
# |
# output: |
-# File name of file to write. |
+# File name of file to write. In GYP this is unspecified and it will |
+# make up a file name for you based on the input name, and tack on |
+# "_version.rc" to the end. But in GN you need to specify the full name. |
+# |
+# template_file (optional): |
+# Template file to use (not a list). Defaults to |
+# //chrome/app/chrome_version.rc.version if unspecified. |
# |
# extra_args (optional): |
-# Extra arguments to pass to version.py. |
+# Extra arguments to pass to version.py. Any "-f <filename>" args should |
+# use sources instead. |
# |
# visibility (optional) |
# |
# Example: |
# process_version("myversion") { |
-# source = "myfile.h.in" |
+# sources = [ ""myfile.h.in" |
Dirk Pranke
2015/02/25 00:23:19
Nit: you have two leading quotes and a missing end
|
# output = "$target_gen_dir/myfile.h" |
# extra_args = ["-e", "FOO=42"] |
+# extra_files = [ "foo/BRANDING" ] |
# } |
template("process_version") { |
- assert(defined(invoker.source), "Source must be defined for $target_name") |
+ assert(defined(invoker.sources) || defined(invoker.template_file), |
+ "sources or template_file must be defined for $target_name") |
Dirk Pranke
2015/02/25 00:23:19
It's not actually clear in the docs above that you
|
assert(defined(invoker.output), "Output must be defined for $target_name") |
action(target_name) { |
@@ -43,28 +61,40 @@ template("process_version") { |
} else { |
branding_path = "//chrome/app/theme/chromium/BRANDING" |
} |
+ if (defined(invoker.template_file)) { |
+ template_path = invoker.template_file |
+ } else { |
+ template_path = "//chrome/app/chrome_version.rc.version" |
+ } |
inputs = [ |
version_path, |
- invoker.source, |
lastchange_path, |
branding_path, |
+ template_path |
Dirk Pranke
2015/02/25 00:23:19
nit: should there be a trailing comma?
|
] |
outputs = [ |
invoker.output, |
] |
- args = [ |
+ args = [] |
+ |
+ if (defined(invoker.sources)) { |
+ inputs += invoker.sources |
+ foreach(i, invoker.sources) { |
+ args += [ "-f", rebase_path(i, root_build_dir) ] |
+ } |
+ } |
+ |
+ args += [ |
"-f", |
rebase_path(version_path, root_build_dir), |
"-f", |
rebase_path(branding_path, root_build_dir), |
"-f", |
rebase_path(lastchange_path, root_build_dir), |
- "-i", |
- rebase_path(invoker.source, root_build_dir), |
- "-o", |
+ rebase_path(template_path, root_build_dir), |
rebase_path(invoker.output, root_build_dir), |
] |