# 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}", ] } }