# 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")

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" ]

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
