12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- # Copyright 2021 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.
- # Template to merge multiple plist files and perform variable substitutions.
- #
- # Arguments
- #
- # plist_templates:
- # string array, paths to plist files which will be used for the bundle.
- #
- # format:
- # string, the format to `plutil -convert` the plist to when
- # generating the output.
- #
- # substitutions:
- # string array, 'key=value' pairs used to replace ${key} by value
- # when generating the output plist file.
- #
- # output_name:
- # string, name of the generated plist file.
- template("compile_plist") {
- assert(defined(invoker.plist_templates),
- "A list of template plist files must be specified for $target_name")
- assert(defined(invoker.format),
- "The plist format must be specified for $target_name")
- assert(defined(invoker.substitutions),
- "A list of key=value pairs must be specified for $target_name")
- assert(defined(invoker.output_name),
- "The name of the output file must be specified for $target_name")
- _output_name = invoker.output_name
- _merged_name = get_path_info(_output_name, "dir") + "/" +
- get_path_info(_output_name, "name") + "_merged." +
- get_path_info(_output_name, "extension")
- _merge_target = target_name + "_merge"
- action(_merge_target) {
- forward_variables_from(invoker,
- [
- "deps",
- "testonly",
- ])
- script = "//build/apple/plist_util.py"
- sources = invoker.plist_templates
- outputs = [ _merged_name ]
- args = [
- "merge",
- "-f=" + invoker.format,
- "-o=" + rebase_path(_merged_name, root_build_dir),
- ] + rebase_path(invoker.plist_templates, root_build_dir)
- }
- action(target_name) {
- forward_variables_from(invoker,
- [
- "testonly",
- "visibility",
- ])
- script = "//build/apple/plist_util.py"
- sources = [ _merged_name ]
- outputs = [ _output_name ]
- args = [
- "substitute",
- "-f=" + invoker.format,
- "-o=" + rebase_path(_output_name, root_build_dir),
- "-t=" + rebase_path(_merged_name, root_build_dir),
- ]
- foreach(_substitution, invoker.substitutions) {
- args += [ "-s=$_substitution" ]
- }
- deps = [ ":$_merge_target" ]
- }
- }
|