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