blob: aefbc7783e5fde9ba7b84454d163a261ca0743f0 [file] [log] [blame]
# 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/toolchain/toolchain_environment.gni")
import("//build/zircon/zx_library.gni")
zx_library("fbl") {
sdk = "source"
sdk_publishable = "cts"
sdk_headers = [
"fbl/algorithm.h",
"fbl/alloc_checker.h",
"fbl/array.h",
"fbl/auto_lock.h",
"fbl/bits.h",
"fbl/conditional_select_nospec.h",
"fbl/condition_variable.h",
"fbl/confine_array_index.h",
"fbl/enum_bits.h",
"fbl/hard_int.h",
"fbl/inline_array.h",
"fbl/intrusive_container_node_utils.h",
"fbl/intrusive_container_utils.h",
"fbl/intrusive_double_list.h",
"fbl/intrusive_hash_table.h",
"fbl/intrusive_pointer_traits.h",
"fbl/intrusive_single_list.h",
"fbl/strong_int.h",
"fbl/intrusive_wavl_tree.h",
"fbl/intrusive_wavl_tree_internal.h",
"fbl/macros.h",
"fbl/mutex.h",
"fbl/no_destructor.h",
"fbl/null_lock.h",
"fbl/recycler.h",
"fbl/ref_counted.h",
"fbl/ref_counted_internal.h",
"fbl/ref_counted_upgradeable.h",
"fbl/ref_ptr.h",
"fbl/ring_buffer.h",
"fbl/slab_allocator.h",
"fbl/slab_malloc.h",
"fbl/static_vector.h",
"fbl/string_buffer.h",
"fbl/string.h",
"fbl/string_printf.h",
"fbl/string_traits.h",
"fbl/type_info.h",
"fbl/unaligned.h",
"fbl/unique_fd.h",
"fbl/vector.h",
"fbl/wavl_tree_best_node_observer.h",
]
sources = [ "alloc_checker.cc" ]
if (!is_kernel) {
sources += [
"string.cc",
"string_buffer.cc",
"string_printf.cc",
]
}
public_deps = [
"//sdk/lib/fit",
"//sdk/lib/stdcompat",
]
deps = []
if (is_kernel) {
# Anything using libc++ headers in the kernel needs this.
public_deps += [ "//zircon/kernel/lib/ktl:headers" ]
if (toolchain_environment == "kernel") {
deps += [ "//zircon/kernel/lib/heap:headers" ]
} else {
deps += [
"//zircon/kernel/lib/ktl",
"//zircon/kernel/lib/libc",
]
}
}
if (toolchain_environment == "kernel") {
# Avoid circularity.
configs -= [ "//zircon/kernel/vm:headers.config" ]
}
if (!is_fuchsia && !is_kernel) {
deps += [ "//zircon/system/public" ]
}
}
group("tests") {
testonly = true
deps = [ "test:tests" ]
}