| # Copyright 2022 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/components.gni") |
| import("//build/config.gni") |
| |
| # Define a session manager package with a provided configuration file. |
| # |
| # Parameters |
| # |
| # `config` (required, string): path to a JSON configuration file configuring startup URL. |
| # |
| # `package_name` (optional, string): name of the package to create, defaults to `session_manager`. |
| template("session_manager_package") { |
| assert(defined(invoker.config), |
| "must define `config` as a path to JSON file with startup config") |
| |
| package_name = "session_manager" |
| if (defined(invoker.package_name)) { |
| package_name = invoker.package_name |
| } |
| |
| component_target = "${target_name}_component" |
| config_target = "${target_name}_config" |
| manifest_target = "${target_name}_manifest_compile" |
| |
| fuchsia_component_manifest(manifest_target) { |
| manifest = "//src/session/bin/session_manager/meta/session_manager.cml" |
| component_name = "session_manager" |
| } |
| |
| fuchsia_component(component_target) { |
| cm_label = ":${manifest_target}" |
| deps = [ "//src/session/bin/session_manager:bin" ] |
| } |
| |
| fuchsia_structured_config_values(config_target) { |
| cm_label = ":${manifest_target}" |
| values_source = invoker.config |
| } |
| |
| fuchsia_package(target_name) { |
| package_name = package_name |
| deps = [ |
| ":${component_target}", |
| ":${config_target}", |
| ] |
| } |
| } |