# 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/lib/fit-promise",
    "//src/lib/uuid",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/zxc",
  ]

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

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