| # 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. |
| |
| import("//build/apple/compile_plist.gni") |
| |
| # The base template used to generate Info.plist files for iOS and Mac apps and |
| # frameworks. |
| # |
| # Arguments |
| # |
| # plist_templates: |
| # string array, paths to plist files which will be used for the bundle. |
| # |
| # executable_name: |
| # string, name of the generated target used for the product |
| # and executable name as specified in the output Info.plist. |
| # |
| # format: |
| # string, the format to `plutil -convert` the plist to when |
| # generating the output. |
| # |
| # extra_substitutions: |
| # (optional) string array, 'key=value' pairs for extra fields which are |
| # specified in a source Info.plist template. |
| # |
| # output_name: |
| # (optional) string, name of the generated plist file, default to |
| # "$target_gen_dir/$target_name.plist". |
| template("apple_info_plist") { |
| assert(defined(invoker.executable_name), |
| "The executable_name must be specified for $target_name") |
| executable_name = invoker.executable_name |
| |
| compile_plist(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "plist_templates", |
| "testonly", |
| "deps", |
| "visibility", |
| "format", |
| ]) |
| |
| if (defined(invoker.output_name)) { |
| output_name = invoker.output_name |
| } else { |
| output_name = "$target_gen_dir/$target_name.plist" |
| } |
| |
| substitutions = [ |
| "EXECUTABLE_NAME=$executable_name", |
| "GCC_VERSION=com.apple.compilers.llvm.clang.1_0", |
| "PRODUCT_NAME=$executable_name", |
| ] |
| if (defined(invoker.extra_substitutions)) { |
| substitutions += invoker.extra_substitutions |
| } |
| } |
| } |