|  | # 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 | 
|  | }, | 
|  | ] | 
|  | } | 
|  | } |