# Copyright 2019 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT

import("//build/zircon/migrated_targets.gni")

zx_library("fbl") {
  kernel = true
  sources = [ "arena.cc" ]
  deps = [
    ":tests",
    "//sdk/lib/fit",
    "//zircon/kernel/lib/ktl",
    "//zircon/kernel/vm:headers",
    "//zircon/system/ulib/fbl",
  ]
  public_deps = [
    # <fbl/gparena.h> has #include <lib/fit/defer.h>
    "//sdk/lib/fit:headers",
    "//zircon/system/ulib/fbl:headers",

    # <include/fbl/arena.h> has #include <ktl/forward.h>.
    "//zircon/kernel/lib/ktl:headers",
  ]
}

source_set("tests") {
  #TODO: testonly = true
  visibility = [ ":*" ]
  sources = [
    "arena_tests.cc",
    "function_tests.cc",
    "gparena_tests.cc",
    "name_tests.cc",
  ]

  deps = [
    ":headers",
    "//zircon/kernel/lib/unittest",
  ]
}
