# Copyright 2016 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. import("//build/util/lastchange.gni") # Template to run the tweak_info_plist.py script on a plist. # # Arguments: # # info_plist: # (optional), string, the plist to tweak. # # info_plists: # (optional), list of string, the plist files to merge and tweak. # # args: # (optional), list of string, the arguments to pass to the # tweak_info_plist.py script. # # Callers should use get_target_outputs() to get the output name. One of # info_plist or info_plists must be specified. template("tweak_info_plist") { _output_name = "$target_gen_dir/${target_name}_tweaked.plist" if (defined(invoker.info_plists)) { assert(!defined(invoker.info_plist), "Cannot have both info_plist and info_plists for $target_name") _source_name = "$target_gen_dir/${target_name}_merged.plist" _deps = [ ":" + target_name + "_merge_plist" ] action(target_name + "_merge_plist") { forward_variables_from(invoker, [ "testonly", "deps", ]) script = "//build/apple/plist_util.py" sources = invoker.info_plists outputs = [ _source_name ] args = [ "merge", "-f=xml1", "-o=" + rebase_path(_source_name, root_build_dir), ] + rebase_path(invoker.info_plists, root_build_dir) } } else { assert(defined(invoker.info_plist), "The info_plist must be specified in $target_name") _source_name = invoker.info_plist _deps = [] if (defined(invoker.deps)) { _deps += invoker.deps } } action(target_name) { forward_variables_from(invoker, [ "args", "testonly", ]) script = "//build/apple/tweak_info_plist.py" inputs = [ script, "//build/util/version.py", lastchange_file, "//chrome/VERSION", ] sources = [ _source_name ] outputs = [ _output_name ] if (!defined(args)) { args = [] } args += [ "--plist", rebase_path(_source_name, root_build_dir), "--output", rebase_path(_output_name, root_build_dir), "--platform=$current_os", ] deps = _deps } }