| # Copyright 2021 The Fuchsia 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("//src/sys/build/fuchsia_package.gni") |
| |
| # Defines a Fuchsia package that contains binaries or resources to be |
| # part of the Fuchsia system image (i.e. copied to /system/...). |
| # |
| # Such packages should not contain any component, and should be |
| # reachable from the //build/input:system_image target, and optionally |
| # for //build/images:base_packages and //build/images:meta_packages. |
| # |
| # System packages should be rare, and can be added to the system image in |
| # two different ways: |
| # |
| # 1) By adding them to the //build/input:system_image dependency tree, |
| # which should _only_ list fuchsia_system_package() intances. The |
| # build will complain if it finds a non-driver fuchsia_package() |
| # there. |
| # |
| # 2) By adding them to the //build/images:base_packages or |
| # //build/images:meta_packages dependency trees. This is useful when |
| # a base package requires the content of a specific extra |
| # fuchsia_system_package() to be installed in the system image as well. |
| # |
| # Such a package instance must set the "allowed_in_extra_deps" parameter |
| # below. The build system will complain if it finds an unmarked extra |
| # fuchsia_system_package() in this set. |
| # |
| # Parameters: |
| # |
| # package_name (optional) |
| # The name of the package. |
| # Type: string |
| # Default: target_name |
| # |
| # allowed_in_extra_deps (optional) |
| # Set to true to allow this package to be part of extra dependency |
| # trees used to build the system image. This is useful when this |
| # package is required by another base or meta package, but shouldn't |
| # be part of the default system image dependency tree otherwise. |
| # |
| # deps |
| # testonly |
| # visibility |
| # |
| # |
| template("fuchsia_system_package") { |
| fuchsia_package(target_name) { |
| forward_variables_from(invoker, |
| "*", |
| [ |
| "allowed_in_extra_deps", |
| "disable_elf_binaries_check", |
| "testonly", |
| "visibility", |
| ]) |
| forward_variables_from(invoker, |
| [ |
| "testonly", |
| "visibility", |
| ]) |
| |
| system_image_package_allowed_in_extra_deps = |
| defined(invoker.allowed_in_extra_deps) && invoker.allowed_in_extra_deps |
| } |
| } |