# 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("//products/minimal.gni")

include_shell_commands_package = true

product_system_image_deps = [
  "//src/connectivity/bluetooth:core-system",

  # Test drivers will only be loaded as tests require. They should be removed from production
  # products that have limited storage.
  # TODO(fxbug.dev/3150): Move to a regular package.
  "//src/graphics/lib/magma/tests:test-drivers",
]

# core and above are larger products, make sure that we're not using the "low"
# timeout
product_bootfs_labels += [ "//products/kernel_cmdline:oom.reboot-timeout--low" ]
product_bootfs_labels -= [ "//products/kernel_cmdline:oom.reboot-timeout--low" ]

core_realm_package_name = "core"
core_realm_shards += [
  "//src/connectivity/wlan/wlancfg:wlancfg-core-shard",
  "//src/connectivity/wlan/wlandevicemonitor:wlandevicemonitor-core-shard",
  "//src/connectivity/wlan/wlanstack:wlanstack-core-shard",
  "//src/developer/remote-control:laboratory-core-shard",
  "//src/devices/bin/driver_playground:driver-playground-core-shard",
  "//src/developer/sshd-host:core_shard",
  "//src/media/audio/audio_core/v2:core_shard",
  "//src/media/sounds/soundplayer:core_shard",
  "//src/settings/service:setui_service_core_shard",
  "//src/sys/pkg/bin/system-update-checker:system-update-checker-core-shard",
  "//src/sys/pkg/bin/system-updater:system-updater-core-shard",

  # TODO(fxbug.dev/80375): only include in eng builds
  "//src/sys/test_manager:test_manager_core_shard",
]
core_realm_restrict_persistent_storage = false

legacy_base_package_labels += [
  "//src/developer/sshd-host",
  "//src/developer/sshd-host:config",

  # TODO(https://fxbug.dev/85742): Remove this target once out-of-tree
  # integration tests inject components from network-legacy-deprecated.
  "//src/connectivity/network:integration-test-deps",
  "//src/connectivity/bluetooth:core",
  "//src/connectivity/wlan:packages",
  "//src/devices/sysmem/bin/sysmem_connector",
  "//src/settings/service:setui_service",
]

# Tools to control the pkg subsystem are in the base package set by default
# so the software delivery system can be debugged and reconfigured without
# access to the full universe package set.
# Product configurations that lack an accessible shell environment should
# remove these tools from the base package set.
legacy_base_package_labels += [ "//src/sys/pkg:tools" ]

# cargo-gnaw is currently part of all build graphs, but it should only
# built by fx tooling
legacy_base_package_labels += [ "//tools/cargo-gnaw:install-cargo-gnaw" ]

legacy_cache_package_labels += [ "//src/developer/ffx:runtime" ]

product_system_image_deps += [ "//bundles:tools-system" ]
legacy_universe_package_labels += [
  "//bundles:tools",
  "//src/devices/bin/driver_playground:pkg",
  "//src/testing/metrics-logger",
]

# Set the default pkgfs allowlist to use for all core-based products to the
# "eng" allowlist.
product_system_image_deps +=
    [ "//src/security/policy:pkgfs_non_static_pkgs_allowlist_eng" ]

# Use the product assembly config file to specify the product configuration.
#
# This should be overridden by products which inherit from core.
fuchsia_product_assembly_config_file =
    "//build/assembly/empty_product_config.json"
