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

# This default target should contain all public or partner SDKs.
group("sdk") {
  testonly = true

  public_deps = [
    ":core",
    ":ddk",
    ":zircon_sysroot",
  ]
}

sdk_documentation("open_source") {
  name = "open_source"

  category = "public"

  files = []
  foreach(file,
          [
            "AUTHORS",
            "LICENSE",
            "PATENTS",
          ]) {
    files += [
      {
        source = "//$file"
        dest = file
      },
    ]
  }
}

sdk_documentation("musl_license") {
  name = "musl_license"

  category = "public"

  files = [
    {
      source = "//zircon/third_party/ulib/musl/COPYRIGHT"
      dest = "COPYRIGHT.musl"
    },
  ]
}

sdk_documentation("vulkan_license") {
  name = "vulkan_license"

  category = "public"

  files = [
    {
      source = "//third_party/vulkan_loader_and_validation_layers/COPYRIGHT.txt"
      dest = "COPYRIGHT.vulkan"
    },
    {
      source = "//third_party/vulkan_loader_and_validation_layers/LICENSE.txt"
      dest = "LICENSE.vulkan"
    },
  ]
}

sdk("zircon_sysroot") {
  category = "partner"

  export = true

  deps = [
    "//zircon/public/sysroot:sysroot_sdk",
  ]
}

sdk("ddk") {
  category = "partner"

  deps = [
    "tools:banjo_sdk($host_toolchain)",
    "//zircon/public/banjo/ddk.driver:ddk.driver_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.acpi:ddk.protocol.acpi_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.amlogiccanvas:ddk.protocol.amlogiccanvas_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.badblock:ddk.protocol.badblock_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.block:ddk.protocol.block_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.bt.gattsvc:ddk.protocol.bt.gattsvc_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.bt.hci:ddk.protocol.bt.hci_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.clock:ddk.protocol.clock_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.display.controller:ddk.protocol.display.controller_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.ethernet:ddk.protocol.ethernet_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.ethernet.board:ddk.protocol.ethernet.board_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.ethernet.mac:ddk.protocol.ethernet.mac_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.gpio:ddk.protocol.gpio_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.gpioimpl:ddk.protocol.gpioimpl_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.hidbus:ddk.protocol.hidbus_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.i2c:ddk.protocol.i2c_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.i2cimpl:ddk.protocol.i2cimpl_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.intelgpucore:ddk.protocol.intelgpucore_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.intelhda.codec:ddk.protocol.intelhda.codec_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.iommu:ddk.protocol.iommu_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.mailbox:ddk.protocol.mailbox_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.mipicsi:ddk.protocol.mipicsi_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.nand:ddk.protocol.nand_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.pci:ddk.protocol.pci_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.pciroot:ddk.protocol.pciroot_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.platform.bus:ddk.protocol.platform.bus_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.platform.device:ddk.protocol.platform.device_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.rawnand:ddk.protocol.rawnand_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.scpi:ddk.protocol.scpi_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.sdhci:ddk.protocol.sdhci_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.sdio:ddk.protocol.sdio_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.sdmmc:ddk.protocol.sdmmc_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.serial:ddk.protocol.serial_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.serialimpl:ddk.protocol.serialimpl_sdk($banjo_toolchain)",
    "//zircon/public/banjo/ddk.protocol.test:ddk.protocol.test_sdk($banjo_toolchain)",
    "//zircon/public/lib/ddk:ddk_sdk",
    "//zircon/public/lib/ddktl:ddktl_sdk",
    "//zircon/public/lib/driver:driver_sdk",
    "//zircon/public/sysroot:sysroot_sdk",
    "//zircon/public/tool/fidl-format:fidl-format_sdk($host_toolchain)",
    "//zircon/public/tool/fidlc:fidlc_sdk($host_toolchain)",
  ]
}

sdk("e2e_testing") {
  # TODO(DX-1314): this id should not be necessary.
  id = sdk_id

  category = "partner"

  deps = [
    "//sdk/testing/sl4f/client:client_sdk($dart_toolchain)",
  ]
}

# TODO(DX-1667): break this target down into smaller chunks.
sdk("core") {
  id = sdk_id

  category = "partner"

  api = "core.api"

  testonly = true

  deps = [
    ":musl_license",
    ":open_source",
    ":vulkan_license",
    "devices",
    "docs",
    "tools:dev_finder_sdk($host_toolchain)",
    "tools:symbolize_sdk($host_toolchain)",
    "//garnet/bin/far:bin_sdk($host_toolchain)",
    "//garnet/go/src/fidl:fidlgen_sdk($host_toolchain)",
    "//garnet/go/src/pm:pm_bin_sdk($host_toolchain)",
    "//garnet/lib/vulkan:vulkan_layers",
    "//sdk/fidl/fuchsia.auth.oldtokens:fuchsia.auth.oldtokens_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.bluetooth.gatt:fuchsia.bluetooth.gatt_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.bluetooth.le:fuchsia.bluetooth.le_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.camera:fuchsia.camera_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.castauth:fuchsia.castauth_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.castsetup:fuchsia.castsetup_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.castsysteminfo:fuchsia.castsysteminfo_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.deprecatedtimezone:fuchsia.deprecatedtimezone_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.developer.tiles:fuchsia.developer.tiles_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.feedback:fuchsia.feedback_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.fonts:fuchsia.fonts_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.images:fuchsia.images_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.math:fuchsia.math_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.media:fuchsia.media_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.media.audio:fuchsia.media.audio_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.media.drm:fuchsia.media.drm_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.media.playback:fuchsia.media.playback_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.media.sessions:fuchsia.media.sessions_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.mediacodec:fuchsia.mediacodec_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.net.http:fuchsia.net.http_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.net.mdns:fuchsia.net.mdns_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.net.oldhttp:fuchsia.net.oldhttp_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.netstack:fuchsia.netstack_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.simplecamera:fuchsia.simplecamera_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.sys:fuchsia.sys_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.sys.test:fuchsia.sys.test_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.ui.app:fuchsia.ui.app_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.ui.gfx:fuchsia.ui.gfx_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.ui.policy:fuchsia.ui.policy_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.ui.scenic:fuchsia.ui.scenic_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.ui.viewsv1:fuchsia.ui.viewsv1_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.ui.viewsv1token:fuchsia.ui.viewsv1token_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.web:fuchsia.web_sdk($fidl_toolchain)",
    "//sdk/fidl/fuchsia.wlan.service:fuchsia.wlan.service_sdk($fidl_toolchain)",
    "//sdk/lib/fidl/cpp:cpp_sdk",
    "//sdk/lib/svc:svc_sdk",
    "//sdk/lib/sys/cpp:cpp_sdk",
    "//sdk/lib/sys/cpp/testing:unit_sdk",
    "//sdk/lib/ui/scenic/cpp:cpp_sdk",
    "//sdk/lib/vfs/cpp:cpp_sdk",
    "//src/developer/bugreport:client_sdk($host_toolchain)",
    "//src/developer/debug/zxdb:zxdb_sdk($host_toolchain)",
    "//src/sys/cmc:cmc_sdk($host_toolchain)",
    "//third_party/vulkan_loader_and_validation_layers/loader:loader_sdk",
    "//zircon/public/fidl/fuchsia-cobalt:fuchsia-cobalt_sdk($fidl_toolchain)",
    "//zircon/public/fidl/fuchsia-crash:fuchsia-crash_sdk($fidl_toolchain)",
    "//zircon/public/fidl/fuchsia-hardware-goldfish-address-space:fuchsia-hardware-goldfish-address-space_sdk($fidl_toolchain)",
    "//zircon/public/fidl/fuchsia-hardware-goldfish-control:fuchsia-hardware-goldfish-control_sdk($fidl_toolchain)",
    "//zircon/public/fidl/fuchsia-hardware-goldfish-pipe:fuchsia-hardware-goldfish-pipe_sdk($fidl_toolchain)",
    "//zircon/public/fidl/fuchsia-logger:fuchsia-logger_sdk($fidl_toolchain)",
    "//zircon/public/fidl/fuchsia-mem:fuchsia-mem_sdk($fidl_toolchain)",
    "//zircon/public/fidl/fuchsia-process:fuchsia-process_sdk($fidl_toolchain)",
    "//zircon/public/fidl/fuchsia-sysinfo:fuchsia-sysinfo_sdk($fidl_toolchain)",
    "//zircon/public/lib/async:async_sdk",
    "//zircon/public/lib/async-cpp:async-cpp_sdk",
    "//zircon/public/lib/async-default:async-default_sdk",
    "//zircon/public/lib/async-loop:async-loop_sdk",
    "//zircon/public/lib/async-loop-cpp:async-loop-cpp_sdk",
    "//zircon/public/lib/async-testing:async-testing_sdk",
    "//zircon/public/lib/fdio:fdio_sdk",
    "//zircon/public/lib/memfs:memfs_sdk",
    "//zircon/public/lib/sync:sync_sdk",
    "//zircon/public/lib/syslog:syslog_sdk",
    "//zircon/public/sysroot:sysroot_sdk",
    "//zircon/public/tool/bootserver:bootserver_sdk($host_toolchain)",
    "//zircon/public/tool/fidl-format:fidl-format_sdk($host_toolchain)",
    "//zircon/public/tool/fidlc:fidlc_sdk($host_toolchain)",
    "//zircon/public/tool/fvm:fvm_sdk($host_toolchain)",
    "//zircon/public/tool/loglistener:loglistener_sdk($host_toolchain)",
    "//zircon/public/tool/merkleroot:merkleroot_sdk($host_toolchain)",
    "//zircon/public/tool/minfs:minfs_sdk($host_toolchain)",
    "//zircon/public/tool/zbi:zbi_sdk($host_toolchain)",
  ]
}

# This SDK provides FIDL protocols and C++ libraries for writing hermetic
# integration tests which use modular.
#
# This SDK has runtime dependencies on the following fuchsia packages:
#  * environment_delegating_runner
#  * modular_test_harness
sdk("modular_testing") {
  testonly = true

  id = sdk_id

  api = "modular_testing.api"

  category = "partner"

  deps = [
    "//sdk/fidl/fuchsia.modular.testing:fuchsia.modular.testing_sdk($fidl_toolchain)",
  ]
}
