diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /third_party/libwebrtc/build/config/fuchsia/package.gni | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/build/config/fuchsia/package.gni')
-rw-r--r-- | third_party/libwebrtc/build/config/fuchsia/package.gni | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/third_party/libwebrtc/build/config/fuchsia/package.gni b/third_party/libwebrtc/build/config/fuchsia/package.gni new file mode 100644 index 0000000000..ff6ffd0a3d --- /dev/null +++ b/third_party/libwebrtc/build/config/fuchsia/package.gni @@ -0,0 +1,114 @@ +# Copyright 2018 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("//third_party/fuchsia-sdk/sdk/build/component.gni") +import("//third_party/fuchsia-sdk/sdk/build/package.gni") + +# DEPRECATED: Use the Fuchsia SDK's fuchsia_component() and fuchsia_package() +# templates directly, in new code. +# +# Creates a Fuchsia .far package file containing a Fuchsia component. +# +# Parameters are: +# package_name_override: Specifies the name of the package to generate, +# if different than |target_name|. +# binary: The executable target which should be launched. +# manifest: A path to the manifest that will be used. +# "testonly" targets default to using +# //build/config/fuchsia/tests-with-exec.cmx. +# Non-test targets must explicitly specify a |manifest|. +# additional_manifests: Manifest files that should be included in the package in +# the /meta directory. This allows to package more than one component per +# manifest. These manifest files must specify program/binary to run, which +# is not required for the main manifest file where this parameter is added +# during build. +# component_name_override: If set, specifies the name of the component. +# By default, the component name is the same as the package name. +# deps: Additional targets to build and include in the package (optional). +# +# TODO(https://crbug.com/1050703): Migrate consumers to GN SDK equivalents. +template("cr_fuchsia_package") { + assert(defined(invoker.binary)) + + if (defined(invoker.package_name_override)) { + _package_name = invoker.package_name_override + } else { + _package_name = invoker.target_name + } + + _package_contents = [ invoker.binary ] + if (defined(invoker.deps)) { + _package_contents += invoker.deps + } + + _component_cmx_target = target_name + "__cr-component-cmx" + _component_target = target_name + "__cr-component" + _package_components = [ ":${_component_target}" ] + _component_manifest = "${target_gen_dir}/${target_name}.cmx" + + # Process the CMX fragment in |manifest| to get a full manifest. + action(_component_cmx_target) { + forward_variables_from(invoker, + [ + "deps", + "testonly", + ]) + + script = "//build/config/fuchsia/build_cmx_from_fragment.py" + + inputs = [ invoker.manifest ] + outputs = [ _component_manifest ] + + args = [ + "--cmx-fragment", + rebase_path(invoker.manifest), + "--cmx", + rebase_path(_component_manifest), + "--program", + get_label_info(invoker.binary, "name"), + ] + } + + # Declare the primary component for this package. + fuchsia_component(_component_target) { + forward_variables_from(invoker, [ "testonly" ]) + + deps = [ ":${_component_cmx_target}" ] + data_deps = _package_contents + manifest = _component_manifest + + if (defined(invoker.component_name_override)) { + manifest_output_name = "${invoker.component_name_override}" + } else { + manifest_output_name = "${_package_name}" + } + } + + # Bundle manifests providing additional entrypoints into the package. + if (defined(invoker.additional_manifests)) { + foreach(filename, invoker.additional_manifests) { + _additional_component_target = + target_name + "_" + get_path_info(filename, "name") + _package_components += [ ":${_additional_component_target}" ] + fuchsia_component(_additional_component_target) { + forward_variables_from(invoker, [ "testonly" ]) + data_deps = _package_contents + manifest = filename + + # Depend upon the invoker's |deps|, in case they include a dependency + # responsible for generating this additional component's manifest file. + deps = _package_contents + } + } + } + + fuchsia_package(target_name) { + forward_variables_from(invoker, [ "testonly" ]) + package_name = _package_name + if (defined(invoker.excluded_files)) { + excluded_files = invoker.excluded_files + } + deps = _package_components + } +} |