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

base_package_labels += [
  "//garnet/packages/config:shortcut",
  "//src/chromium",
  "//src/dart:dart_jit",
  "//src/dart:dart_jit_product",
  "//src/experiences/session_shells/ermine",
  "//src/experiences/settings",
  "//src/experiences/story_shells/mondrian",
  "//src/flutter",
  "//src/fonts",
  "//src/modular/bundles:framework_experimental",
  "//src/ui/bin/brightness_manager",
  "//src/ui/bin/shortcut",
  "//third_party/dart-pkg/git/flutter/examples/flutter_gallery",
  "//topaz/shell/story_shell_labs",
]

cache_package_labels += [
  "//garnet/packages/prod:battery_manager",
  "//src/experiences/bin/simple_browser",
  "//src/media/audio/bundles:audio",
]

universe_package_labels += [
  "//src/ledger/cloud_provider_firestore/bin",
  "//src/modular/bundles:tools",
]

kernel_cmdline_args += [
  # hide the virtual console on boot
  "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(IN-1097): 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" ]

# E2E Product Tests. They don't produce fuchsia packages, but host executables,
# and must just be included somewhere in the build configuration of the product.
universe_package_labels += [
  "//src/experiences/tests/e2e:test",
  "//src/tests/end_to_end/voila_hello_world:test",
]
