blob: 28fb5718c1c6439074a4b12020f74f919db10a29 [file] [log] [blame]
# Copyright 2020 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("fuchsia_component.gni")
import("fuchsia_package.gni")
# Defines a package that contains shell commands.
# See: https://fuchsia.dev/fuchsia-src/development/components/build
#
# Parameters
#
# package_name (optional)
# The name of the package.
# Type: string
# Default: target_name
#
# manifest (optional)
# If your shell program can also be launched as a component,
# then specify the component manifest here.
# Type: path
#
# data_deps
# deps
# testonly
# visibility
template("fuchsia_shell_package") {
if (current_toolchain == default_toolchain) {
package_name = target_name
if (defined(invoker.package_name)) {
package_name = invoker.package_name
}
if (defined(invoker.manifest)) {
component_target = "${target_name}_component"
fuchsia_component(component_target) {
forward_variables_from(invoker,
[
"data_deps",
"deps",
"manifest_deps",
"testonly",
])
visibility = [ ":*" ]
manifest = invoker.manifest
component_name = package_name
}
}
fuchsia_package(target_name) {
forward_variables_from(invoker,
[
"data_deps",
"deps",
"disable_elf_binaries_checks",
"renameable_subpackages",
"shell_commands",
"subpackages",
"testonly",
"visibility",
])
is_shell_package = true
package_name = package_name
if (!defined(deps)) {
deps = []
}
if (defined(component_target)) {
deps += [ ":$component_target" ]
}
deps += [ "//build/validate:shell_command_tag" ]
# The shell environment is not intended for production use.
deps += [ "//build/validate:non_production_tag" ]
}
} else {
group(target_name) {
forward_variables_from(invoker,
[
"testonly",
"visibility",
])
deps = [ ":$target_name($default_toolchain)" ]
}
not_needed(invoker, "*")
}
}