# 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("//src/sys/appmgr/core_shards.gni")

product_build = true

# bringup products have their own assemble_system() instantiation.
use_bringup_assembly = true
bootfs_only = true

product_bootfs_labels = [
  "//build/info:bootfs",
  "//bundles:bootstrap",
  "//bundles:debugging",
  "//bundles:diagnostics-eng",
  "//bundles/bringup:manual_testing",
  "//bundles/drivers:bootstrap",
  "//bundles/drivers:bootstrap-eng",
  "//bundles/drivers:usb-host-stack",
  "//bundles/drivers:usb-peripheral-stack",
  "//bundles/drivers:utils",
]

# Enable diagnostics services.
product_bootfs_labels +=
    [ "//src/diagnostics/archivist:default-service-config" ]

# Add kernel command line arguments.
product_bootfs_labels += [
  "//products/kernel_cmdline:blobfs.cache-eviction-policy--NEVER_EVICT",
  "//products/kernel_cmdline:console.shell--true",
  "//products/kernel_cmdline:kernel.enable-debugging-syscalls--true",
  "//products/kernel_cmdline:kernel.enable-serial-syscalls--true",
  "//products/kernel_cmdline:kernel.oom.behavior--jobkill",
  "//products/kernel_cmdline:netsvc.all-features--true",
  "//products/kernel_cmdline:netsvc.disable--false",
  "//products/kernel_cmdline:oom.reboot-timeout--low",
]

# TODO(fxbug.dev/56988): We shouldn't need runtests, but right now it's used by profile
# builders, so include it here until we remove that dependency.
product_bootfs_labels += [ "//src/testing/runtests" ]

# Component manager configuration.
product_bootfs_labels +=
    [ "//src/sys/component_manager:component_manager_bootfs_config" ]

# TODO(fxbug.dev/102390): deprecate appmgr from bringup.
# Try to move up to minimal.gni or "higher" / specific product configurations.
core_realm_shards = appmgr_core_shards

meta_package_labels = []

base_driver_package_labels = []
legacy_base_driver_package_labels = []

base_package_labels = []
legacy_base_package_labels = []

cache_package_labels = []
legacy_cache_package_labels = []

universe_package_labels = []
legacy_universe_package_labels = [
  "//tools/net/device-finder:host",

  # For flash workflows (remove when flash is only ffx-based).
  "//build/images/tools:fastboot",
]

host_labels = [
  "//tools/devshell:fx",
  "//tools/bindc:host",
]

package_flavor_selections = []

sdk_archive_labels = []
