# Copyright 2021 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Template to package an app extension into an app. # # Parameters # # extension_target: # name of the extension target to package; the extension # bundle name must be derived from the target name # # extension_name: # (optional) name of the extension appex file; derived from # the target name if omitted # template("extension_bundle_data") { assert(defined(invoker.extension_target), "extension_target must be defined for $target_name") _extension_name = get_label_info(invoker.extension_target, "name") + ".appex" if (defined(invoker.extension_name)) { _extension_name = invoker.extension_name } _extension_dir = "PlugIns" if (defined(invoker.extension_dir)) { _extension_dir = invoker.extension_dir } if (defined(invoker.variants) && invoker.variants != []) { _variants = [] foreach(_variant, invoker.variants) { _variants += [ { name = _variant.name }, ] } } else { _variants = [] } _target_name = target_name if (_variants != []) { foreach(_variant, _variants) { _extension_target = get_label_info(invoker.extension_target, "label_no_toolchain") + "_variants_${_variant.name}" + "(" + get_label_info(invoker.extension_target, "toolchain") + ")" bundle_data("${_target_name}_variants_${_variant.name}") { forward_variables_from(invoker, [ "testonly" ]) public_deps = [ _extension_target ] outputs = [ "{{bundle_contents_dir}}/$_extension_dir/{{source_file_part}}" ] sources = [ get_label_info(_extension_target, "root_out_dir") + "/variants/${_variant.name}/$_extension_name" ] } } } bundle_data(_target_name) { forward_variables_from(invoker, [ "testonly" ]) public_deps = [ invoker.extension_target ] outputs = [ "{{bundle_contents_dir}}/$_extension_dir/{{source_file_part}}" ] sources = [ get_label_info(invoker.extension_target, "root_out_dir") + "/$_extension_name" ] } }