blob: a8815f87058f87fea574b722dfd2b966e604f971 [file] [log] [blame]
# Copyright 2015 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.
# Declare a target for processing a template.
#
# Variables
# input: The template file to be processed.
# output: Where to save the result.
# variables: A list of variables to make available to the template
# processing environment, e.g. ["name=foo", "color=red"].
#
# Example
# file_template("chrome_shell_manifest") {
# input = "shell/java/AndroidManifest.xml"
# output = "$target_gen_dir/AndroidManifest.xml"
# variables = "app_name=chrome_shell app_version=1"
# }
template("file_template") {
if (defined(invoker.testonly)) {
testonly = invoker.testonly
}
assert(defined(invoker.input), "The input file must be specified")
assert(defined(invoker.output), "The output file must be specified")
assert(defined(invoker.variables),
"The variable used for substitution in templates must be specified")
variables = invoker.variables
action(target_name) {
if (defined(invoker.visibility)) {
visibility = invoker.visibility
}
script = "//build/android/gyp/jinja_template.py"
depfile = "$target_gen_dir/$target_name.d"
sources = [ invoker.input ]
outputs = [
invoker.output,
depfile,
]
args = [
"--inputs",
rebase_path(invoker.input, root_build_dir),
"--output",
rebase_path(invoker.output, root_build_dir),
"--depfile",
rebase_path(depfile, root_build_dir),
"--variables=${variables}",
]
}
}