# 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")

declare_args() {
  export_x64_sdk_images = false
}

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

  public_deps = [
    ":core",
    ":ddk",
    ":images",
    ":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)",
  ]
}

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

  category = "partner"

  testonly = true

  deps = [
    "//build/images:images_sdk",
  ]
  if (export_x64_sdk_images) {
    deps += [
      "//build/images:fvm.sparse.blk_sdk",
      "//build/images:local.esp.blk_sdk",
      "//build/images:zircon.vboot_sdk",
    ]
  }
}

sdk("core") {
  id = sdk_id

  category = "partner"

  api = "core.api"

  testonly = true

  deps = [
    ":musl_license",
    ":open_source",
    ":vulkan_license",
    "docs",
    "tools:dev_finder_sdk($host_toolchain)",
    "tools:symbolize_sdk($host_toolchain)",
    "//garnet/bin/cmc:cmc_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.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.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/debug/zxdb:zxdb_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-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/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 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)",
  ]
}
