# 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/unification/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 = [
    "//src/lib/uuid",
    "//zircon/public/lib/fbl",
  ]

  if (is_fuchsia) {
    sources = [
      "cros.cc",
      "gpt.cc",
      "guid.cc",
    ]
    deps = [
      "//sdk/fidl/fuchsia.hardware.block:fuchsia.hardware.block_c",
      "//zircon/public/lib/fit",
      "//zircon/system/ulib/mbr",
      "//zircon/system/ulib/range",
      "//zircon/third_party/ulib/cksum",
    ]
  }
}
