# 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_policy.h",
    "lockdep/lock_traits.h",
    "lockdep/lockdep.h",
    "lockdep/runtime_api.h",
    "lockdep/thread_lock_state.h",
  ]
  sdk_migrated = true
  kernel = true
  static = true
  sources = []
  public_deps = [ "//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 = [
      "//zircon/system/ulib/fbl",
      "//zircon/system/ulib/zx",
    ]
  }
}

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