# 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("//build/dart/toolchain.gni")
import("//build/sdk/sdk.gni")
import("//build/sdk/sdk_molecule.gni")
import("//sdk/config.gni")

# This default target is empty because there are multiple flavors of SDKs and
# there is no "default" one. The empty target is still needed so that all the
# other targets in this file are attached to the build graph.
group("sdk") {
}

# Tools and libraries to develop for Fuchsia with Dart.
sdk("fuchsia_dart") {
  category = "partner"

  id = sdk_id

  api = "fuchsia_dart.api"

  deps = [
    "//sdk/docs:modular_config_schema",

    # TODO(viktard): remove, needed to soft transition
    # https://fuchsia-review.googlesource.com/c/fuchsia/+/295264
    "//sdk/fidl/fuchsia.ui.app:fuchsia.ui.app_sdk",
    "//sdk/fidl/fuchsia.ui.input2:fuchsia.ui.input2_sdk",

    # TODO(SCN-1343): Remove this temporary dependency.
    # Temporarily added as a direct dependency so that it can be removed from
    # //sdk/fidl/fuchsia.ui.views.
    "//sdk/fidl/fuchsia.intl:fuchsia.intl_sdk",

    # Direct FIDL deps.
    # Relying on transitive deps originating in fuchsia.git
    # makes it impossible to land certain changes without breaking
    # //topaz.
    # If a FIDL deps is part of the SDK, it should be explicitly listed here.
    "//sdk/fidl/fuchsia.hardware.audio:fuchsia.hardware.audio_sdk",

    "//topaz/bin/fidlgen_dart:fidlgen_dart_sdk_legacy($host_toolchain)",
    "//topaz/public/dart/composition_delegate:composition_delegate_sdk($dart_toolchain)",
    "//topaz/public/dart/fidl:fidl_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia:fuchsia_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia_inspect:fuchsia_inspect_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia_logger:fuchsia_logger_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia_modular:fuchsia_modular_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia_modular_testing:fuchsia_modular_testing_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia_scenic:fuchsia_scenic_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia_scenic_flutter:fuchsia_scenic_flutter_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia_services:fuchsia_services_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia_vfs:fuchsia_vfs_sdk($dart_toolchain)",
    "//topaz/public/dart/fuchsia_webview_flutter:fuchsia_webview_flutter_sdk($dart_toolchain)",
    "//topaz/runtime/dart:gen_snapshot_sdk($dart_toolchain)",
    "//topaz/runtime/dart:kernel_compiler_sdk($host_toolchain)",
  ]
}
