# 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.

##########################################
# Though under //zircon, this build file #
# is meant to be used in the Fuchsia GN  #
# build.                                 #
# See fxb/36548.                         #
##########################################

assert(!defined(zx) || zx != "/",
       "This file can only be used in the Fuchsia GN build.")

import("//build/unification/zx_library.gni")

zx_library("zbi-bootfs") {
  sdk_headers = [ "zbi-bootfs/zbi-bootfs.h" ]
  sdk = "shared"
  shared = true

  sources = [ "zbi-bootfs.cc" ]
  public_deps = [
    "//sdk/fidl/fuchsia.hardware.skipblock:fuchsia.hardware.skipblock_c",
    "//zircon/public/lib/zx",
  ]
  deps = [
    "//sdk/fidl/fuchsia.hardware.skipblock:fuchsia.hardware.skipblock_c",
    "//zircon/public/lib/fdio",
    "//zircon/public/lib/fzl",
    "//zircon/public/lib/hermetic-decompressor",
    "//zircon/public/lib/lz4",
    "//zircon/public/lib/zstd",
    "//zircon/public/lib/zx",
    "//zircon/system/fidl/fuchsia-io:c",
    "//zircon/system/ulib/bootfs",
    "//zircon/system/ulib/fdio-caller",
  ]
}
