# Copyright 2019 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/zircon/zx_library.gni")

zx_library("gpt") {
  sdk = "source"
  sdk_headers = [
    "gpt/c/gpt.h",
    "gpt/cros.h",
    "gpt/gpt.h",
    "gpt/guid.h",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.device:fuchsia.device_cpp",
    "//sdk/fidl/fuchsia.hardware.block:fuchsia.hardware.block_cpp",
    "//sdk/lib/fit-promise",
    "//src/lib/uuid",
    "//zircon/system/ulib/zx",
  ]

  # TODO(https://fxbug.dev/42085293): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-vla-cxx-extension" ]

  if (is_fuchsia) {
    sources = [
      "cros.cc",
      "gpt.cc",
      "guid.cc",
    ]
    deps = [
      "//sdk/lib/fit",
      "//src/lib/utf_conversion",
      "//zircon/system/ulib/fbl",
      "//zircon/system/ulib/mbr",
      "//zircon/system/ulib/range",
      "//zircon/third_party/ulib/cksum",
      "//zircon/third_party/ulib/safemath",
    ]
    public_deps += [ "//src/storage/lib/block_client/cpp:interface" ]
  }
}

group("tests") {
  testonly = true
  deps = [ "test" ]
}
