| # Copyright 2018 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("//build/package.gni") | |
| # A package() that just contains a single binary created as an executable() | |
| # under the name of the rule. We currently prefer packages with single binaries, | |
| # because only such binaries can be executed directly from the package name in | |
| # appmgr. | |
| template("executable_package") { | |
| binary_rule = "${target_name}_bin" | |
| binary_name = target_name | |
| executable(binary_rule) { | |
| output_name = "${binary_name}" | |
| forward_variables_from(invoker, | |
| [ | |
| "sources", | |
| "deps", | |
| "public_deps", | |
| "testonly", | |
| ]) | |
| } | |
| package(target_name) { | |
| forward_variables_from(invoker, | |
| [ | |
| "deps", | |
| "deprecated_shell", | |
| "meta", | |
| "public_deps", | |
| "resources", | |
| "testonly", | |
| "tests", | |
| ]) | |
| if (defined(deps)) { | |
| deps += [ ":${binary_rule}" ] | |
| } else { | |
| deps = [ ":${binary_rule}" ] | |
| } | |
| binaries = [ | |
| { | |
| name = binary_name | |
| }, | |
| ] | |
| } | |
| } |