# Copyright 2022 The Fuchsia Authors.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//products/common/workstation.gni")

# Add build type config data
legacy_base_package_labels += [
  "//src/cobalt/bin/app:build_type_eng",
  "//src/fonts:build_type_eng",
]

legacy_base_package_labels += [ "//src/developer/ssh-key-manager" ]

# TODO: Remove this once Scenic supports multiple displays.
legacy_base_package_labels -= [ "//src/sys/stash:pkg" ]
legacy_base_package_labels += [ "//src/sys/stash:pkg_eng" ]

# Used by integration tests to inject v1 networking components.
legacy_base_package_labels +=
    [ "//src/connectivity/network:network-legacy-deprecated" ]

# Setting service configuration
legacy_base_package_labels +=
    [ "//src/settings/config:workstation_eng_interface_config" ]

# Improve DX by allowing iteration on these packages without and OTA.
_developer_packages = [
  "//src/sys/activity",
  "//src/intl/intl_services:pkg",
  "//src/media/audio/bundles:services",
  "//src/power:battery",
  "//src/ui:runtime_with_scene_manager",
  "//src/ui/bin/brightness_manager",
  "//src/ui/bin/screensaver",
  "//src/ui/bin/shortcut",
  "//src/experiences/bin/settings/license:license_settings",
  "//src/experiences/session_shells/ermine",
  "//src/media/playback/bundles:services",
  "//src/media/playback/bundles:audio_consumer_config",
  "//src/session",
  "//src/ui/bin/terminal",
  "//src/ui/scenic",
  "//examples/fortune:fortune_teller",

  # Starnix
  "//src/proc/bundles:starnix",
]
legacy_base_package_labels -= _developer_packages
legacy_cache_package_labels += _developer_packages

# Add examples to universe.
legacy_universe_package_labels += [
  "//examples/fidl:tests",
  "//src/lib/ui/carnelian:examples",

  # TODO(fxb/102262): This is an anti-pattern, do not imitate. Remove when we are ready.
  "//bundles/drivers:conformance-tests",
]

# E2E Product Tests. Currently used for Chrome smoke test.
# They don't produce fuchsia packages, but host executables used by the tests.
host_labels += [ "//src/experiences/tests/chrome:test" ]

# Set the SWD policy for workstation_eng, details can be found in //build/security/policies_swd.gni.
policy_labels.swd = "unrestricted"

# 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.
legacy_cache_package_labels += [
  # Used for Chromium tests for example: web_runner_tests.
  "//src/testing/fidl/intl_property_manager",

  # Used for Chromium e2e tests. See fxb/96503.
  "//src/experiences/session_shells/ermine/tools",

  "//src/tests/end_to_end/bundles:end_to_end_deps",
  "//src/experiences/tests/e2e:end_to_end_deps",
  "//src/experiences/tests/performance:performance_deps",

  # CFv2 test framework.
  "//src/sys/run_test_suite",

  # Fake build info for testing support.
  "//src/developer/build_info/testing:testing",
]

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

legacy_universe_package_labels += [
  # 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.
  "//src/tests/end_to_end/screen_is_not_black",
  "//src/tests/end_to_end/sl4f:test",
  "//src/tests/end_to_end/time_sync:test",

  # Only for products in which Flutter is supported.
  "//src/tests/intl/timezone:tests-for-flutter",

  "//src/fonts:open-fonts",
]

# Add SDK tools set to "cache" so these tools are automatically available in
# QEMU images generated for the SDK, but in cache, so they can be updated.
legacy_cache_package_labels += [ "//sdk/bundles:core-tools" ]

# Add cfv2 sl4f to base.
core_realm_shards += [ "//src/testing/sl4f:sl4f_terminal_core_shard" ]
legacy_base_package_labels += [ "//src/sys/bin/start_sl4f" ]

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

# Build with both JIT and AOT non-product runners. JIT is used for debug builds, and AOT is used
# for release builds.
legacy_cache_package_labels += [
  "//src/dart:dart_jit",
  "//src/flutter:flutter_jit",
  "//src/dart:dart_aot",
  "//src/flutter:flutter_aot",
]

# Use the product assembly config file to specify the session manager (and the
# deps for the session).
fuchsia_product_assembly_config_label = "//products/workstation"
fuchsia_product_assembly_config_file = "${root_build_dir}/obj/products/workstation/workstation/product_assembly_config.json"

# Use Fxfs for the data partition.
data_filesystem_format = "fxfs"

# Remove some packages.
legacy_base_package_labels -= [ "//src/virtualization/packages/termina_guest" ]
