# 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/terminal.gni")

core_realm_package_name = "core-workstation"
core_realm_shards = [ "//src/power/battery-manager:battery-manager-core-shard" ]

base_package_labels -= [
  "//garnet/bin/terminal:tiles_config",
  "//src/ui/bin/root_presenter",
]

base_package_labels += [
  "//garnet/packages/config:shortcut",
  "//src/dart:dart_jit",
  "//src/dart:dart_jit_product",
  "//src/developer/ssh-key-manager",
  "//src/fonts",
  "//src/fonts:open-fonts-collection",
  "//src/identity/bin:tier_2",
  "//src/media/audio/bundles:services",
  "//src/power:battery",
  "//src/session/bundles:session_manager",
  "//src/sys/activity",
  "//src/ui/bin/brightness_manager",
  "//src/ui/bin/shortcut",
  "//src/virtualization/packages/debian_guest",
  "//third_party/openssh-portable:openssh-tools",
]

# Add build type config data
base_package_labels += [ "//src/fonts:build_type_eng" ]

# Disable reporting DEBUG metrics in Cobalt
base_package_labels -= [ "//src/cobalt/bin/app:config" ]
base_package_labels += [ "//src/cobalt/bin/app:user_config" ]

cache_package_labels -= [ "//src/ui/tools/tiles" ]

cache_package_labels += [
  "//src/chromium:web_engine",
  "//src/experiences/bin/simple_browser:simple-browser",
  "//src/experiences/bin/simple_browser:web_engine_config",
  "//src/experiences/session_shells/ermine",
  "//src/experiences/session_shells/ermine/session:session_config",
  "//src/flutter",
  "//src/media/playback/bundles:services",
  "//src/media/playback/bundles:audio_consumer_config",
  "//src/session",
]

universe_package_labels += [
  "//examples/fidl:tests",

  "//src/ui/examples/bouncing_ball",
  "//src/ui/examples/spinning_square_view",
  "//src/virtualization",
]

universe_package_labels -= [ "//src/tests/end_to_end/perf:test" ]

product_bootfs_labels += [
  # hide the virtual console on boot
  "//products/kernel_cmdline:virtcon.hide-on-boot",
]

# End to end (E2E) product test runtime dependencies. Must be added to cache,
# not universe, so the test can run on bots where there is no package server.
#
# TODO(fxbug.dev/9892): Support a package server on bots so this can be added to
# universe like the tests.
cache_package_labels += [
  "//src/tests/end_to_end/bundles:end_to_end_deps",
  "//src/experiences/tests/e2e:end_to_end_deps",
]

cache_package_labels -=
    [ "//src/tests/end_to_end/bundles:terminal_end_to_end_deps" ]

# E2E Product Tests. They don't produce fuchsia packages, but host executables
# used by the tests.
host_labels += [
  "//src/experiences/tests/e2e:test",
  "//src/tests/end_to_end/copy_files:test",
]

# Enable the live_usb component.
with_live_usb = true
product_bootfs_labels += [ "//src/sys/live_usb:live_usb_is_system" ]

# Enable input injection for testing through `fuchsia.input.injection.InputDeviceRegistry`.
use_modern_input_injection = true
