# 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 fxbug.dev/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",
    "//sdk/fidl/fuchsia.io:fuchsia.io_c",
    "//sdk/lib/fdio",
    "//src/lib/bootfs",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/fdio-caller",
    "//zircon/system/ulib/fzl",
    "//zircon/third_party/ulib/lz4",
    "//zircon/third_party/ulib/zstd",
  ]

  # TODO(fxb/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

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