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

executable("blobfs") {
  sources = [ "main.cc" ]
  deps = [
    "//sdk/lib/fit",
    "//src/lib/digest",
    "//src/storage/blobfs",
    "//zircon/public/lib/fbl",
    "//zircon/system/ulib/bitmap",
    "//zircon/system/ulib/fs-host",
  ]

  if (!is_fuchsia) {
    deps += [ "//zircon/system/ulib/zx-panic-libc" ]

    exclude_toolchain_tags = [
      # TODO(fxbug.dev/53356): blobfs performs poorly when built with asan
      "asan",

      # TODO(fxbug.dev/59219): blobfs performs poorly when built with profile
      "profile",

      # TODO(fxbug.dev/59219): blobfs performs poorly when built with coverage
      "coverage",
    ]
  }
  configs += [
    # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
    "//build/config:Wno-conversion",
  ]
}
