# 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/chromium:chrome_browser",
  "//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" ]
