# 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/zircon/migrated_targets.gni")

zx_library("lockdep") {
  sdk = "source"
  sdk_headers = [
    "lockdep/common.h",
    "lockdep/global_reference.h",
    "lockdep/guard.h",
    "lockdep/guard_multiple.h",
    "lockdep/lock_class.h",
    "lockdep/lock_class_state.h",
    "lockdep/lock_dependency_set.h",
    "lockdep/lock_name_helper.h",
    "lockdep/lock_policy.h",
    "lockdep/lock_traits.h",
    "lockdep/lockdep.h",
    "lockdep/runtime_api.h",
    "lockdep/thread_lock_state.h",
  ]

  sources = []
  public_deps = [
    "//src/performance/lib/fxt:headers",
    "//zircon/system/ulib/fbl:headers",
  ]
  if (is_kernel) {
    # Anything using libc++ headers in the kernel needs this.
    public_deps += [ "//zircon/kernel/lib/ktl:headers" ]
  } else {
    sources += [ "lock_dep.cc" ]
    deps = [
      "//src/performance/lib/fxt",
      "//zircon/system/ulib/fbl",
      "//zircon/system/ulib/zx",
    ]
  }
}

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