| # 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") |
| |
| # Template to merge multiple .entitlements files performing variable |
| # substitutions. |
| # |
| # Arguments |
| # |
| # entitlements_templates: |
| # string array, paths to entitlements files which will be used for the |
| # bundle. |
| # |
| # 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 entitlements file. |
| template("compile_entitlements") { |
| assert(defined(invoker.entitlements_templates), |
| "A list of template plist files must be specified for $target_name") |
| |
| compile_plist(target_name) { |
| forward_variables_from(invoker, |
| "*", |
| [ |
| "entitlements_templates", |
| "format", |
| "plist_templates", |
| ]) |
| |
| plist_templates = invoker.entitlements_templates |
| |
| # Entitlements files are always encoded in xml1. |
| format = "xml1" |
| |
| # Entitlements files use unsubstitued variables, so define substitutions |
| # to leave those variables untouched. |
| if (!defined(substitutions)) { |
| substitutions = [] |
| } |
| |
| substitutions += [ |
| "AppIdentifierPrefix=\$(AppIdentifierPrefix)", |
| "CFBundleIdentifier=\$(CFBundleIdentifier)", |
| ] |
| } |
| } |