blob: 9f4cbb3fdfa4d506dbd86a491d68350a1add7554 [file] [log] [blame]
# 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" ])
script = "//build/config/mac/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 = []
}
action(target_name) {
forward_variables_from(invoker,
[
"args",
"testonly",
])
script = "//build/mac/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
}
}