# 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.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/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)",
  ]
}
