xref: /aosp_15_r20/external/angle/build/ios/extension_bundle_data.gni (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2021 The Chromium Authors
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Worker# Template to package an app extension into an app.
6*8975f5c5SAndroid Build Coastguard Worker#
7*8975f5c5SAndroid Build Coastguard Worker# Parameters
8*8975f5c5SAndroid Build Coastguard Worker#
9*8975f5c5SAndroid Build Coastguard Worker#   extension_target:
10*8975f5c5SAndroid Build Coastguard Worker#     name of the extension target to package; the extension
11*8975f5c5SAndroid Build Coastguard Worker#     bundle name must be derived from the target name
12*8975f5c5SAndroid Build Coastguard Worker#
13*8975f5c5SAndroid Build Coastguard Worker#   extension_name:
14*8975f5c5SAndroid Build Coastguard Worker#     (optional) name of the extension appex file; derived from
15*8975f5c5SAndroid Build Coastguard Worker#     the target name if omitted
16*8975f5c5SAndroid Build Coastguard Worker#
17*8975f5c5SAndroid Build Coastguard Workertemplate("extension_bundle_data") {
18*8975f5c5SAndroid Build Coastguard Worker  assert(defined(invoker.extension_target),
19*8975f5c5SAndroid Build Coastguard Worker         "extension_target must be defined for $target_name")
20*8975f5c5SAndroid Build Coastguard Worker
21*8975f5c5SAndroid Build Coastguard Worker  _extension_name = get_label_info(invoker.extension_target, "name") + ".appex"
22*8975f5c5SAndroid Build Coastguard Worker  if (defined(invoker.extension_name)) {
23*8975f5c5SAndroid Build Coastguard Worker    _extension_name = invoker.extension_name
24*8975f5c5SAndroid Build Coastguard Worker  }
25*8975f5c5SAndroid Build Coastguard Worker
26*8975f5c5SAndroid Build Coastguard Worker  _extension_dir = "PlugIns"
27*8975f5c5SAndroid Build Coastguard Worker  if (defined(invoker.extension_dir)) {
28*8975f5c5SAndroid Build Coastguard Worker    _extension_dir = invoker.extension_dir
29*8975f5c5SAndroid Build Coastguard Worker  }
30*8975f5c5SAndroid Build Coastguard Worker
31*8975f5c5SAndroid Build Coastguard Worker  if (defined(invoker.variants) && invoker.variants != []) {
32*8975f5c5SAndroid Build Coastguard Worker    _variants = []
33*8975f5c5SAndroid Build Coastguard Worker    foreach(_variant, invoker.variants) {
34*8975f5c5SAndroid Build Coastguard Worker      _variants += [
35*8975f5c5SAndroid Build Coastguard Worker        {
36*8975f5c5SAndroid Build Coastguard Worker          name = _variant.name
37*8975f5c5SAndroid Build Coastguard Worker        },
38*8975f5c5SAndroid Build Coastguard Worker      ]
39*8975f5c5SAndroid Build Coastguard Worker    }
40*8975f5c5SAndroid Build Coastguard Worker  } else {
41*8975f5c5SAndroid Build Coastguard Worker    _variants = []
42*8975f5c5SAndroid Build Coastguard Worker  }
43*8975f5c5SAndroid Build Coastguard Worker
44*8975f5c5SAndroid Build Coastguard Worker  _target_name = target_name
45*8975f5c5SAndroid Build Coastguard Worker  if (_variants != []) {
46*8975f5c5SAndroid Build Coastguard Worker    foreach(_variant, _variants) {
47*8975f5c5SAndroid Build Coastguard Worker      _extension_target =
48*8975f5c5SAndroid Build Coastguard Worker          get_label_info(invoker.extension_target, "label_no_toolchain") +
49*8975f5c5SAndroid Build Coastguard Worker          "_variants_${_variant.name}" + "(" +
50*8975f5c5SAndroid Build Coastguard Worker          get_label_info(invoker.extension_target, "toolchain") + ")"
51*8975f5c5SAndroid Build Coastguard Worker
52*8975f5c5SAndroid Build Coastguard Worker      bundle_data("${_target_name}_variants_${_variant.name}") {
53*8975f5c5SAndroid Build Coastguard Worker        forward_variables_from(invoker, [ "testonly" ])
54*8975f5c5SAndroid Build Coastguard Worker        public_deps = [ _extension_target ]
55*8975f5c5SAndroid Build Coastguard Worker        outputs =
56*8975f5c5SAndroid Build Coastguard Worker            [ "{{bundle_contents_dir}}/$_extension_dir/{{source_file_part}}" ]
57*8975f5c5SAndroid Build Coastguard Worker        sources = [ get_label_info(_extension_target, "root_out_dir") +
58*8975f5c5SAndroid Build Coastguard Worker                    "/variants/${_variant.name}/$_extension_name" ]
59*8975f5c5SAndroid Build Coastguard Worker      }
60*8975f5c5SAndroid Build Coastguard Worker    }
61*8975f5c5SAndroid Build Coastguard Worker  }
62*8975f5c5SAndroid Build Coastguard Worker
63*8975f5c5SAndroid Build Coastguard Worker  bundle_data(_target_name) {
64*8975f5c5SAndroid Build Coastguard Worker    forward_variables_from(invoker, [ "testonly" ])
65*8975f5c5SAndroid Build Coastguard Worker    public_deps = [ invoker.extension_target ]
66*8975f5c5SAndroid Build Coastguard Worker    outputs = [ "{{bundle_contents_dir}}/$_extension_dir/{{source_file_part}}" ]
67*8975f5c5SAndroid Build Coastguard Worker    sources = [ get_label_info(invoker.extension_target, "root_out_dir") +
68*8975f5c5SAndroid Build Coastguard Worker                "/$_extension_name" ]
69*8975f5c5SAndroid Build Coastguard Worker  }
70*8975f5c5SAndroid Build Coastguard Worker}
71