# 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("unittest") {
  kernel = true
  sources = [ "unittest.cc" ]
  deps = [ "$zx/system/ulib/pretty" ]
  public_deps = [
    # <lib/unittest/unittest.h> has #include <lib/special-sections/special-sections.h>.
    "$zx/kernel/lib/special-sections:headers",
  ]
  if (toolchain.environment == "kernel") {
    sources += [
      "console.cc",
      "user_memory.cc",
      "user_memory_tests.cc",
    ]
    public_deps += [
      # <lib/unittest/user_memory.h> has #include <lib/crypto/prng.h>.
      "$zx/kernel/vm:headers",

      # <lib/unittest/user_memory.h> has #include <lib/instrumentation/asan.h>.
      "$zx/kernel/lib/instrumentation:headers",

      # <lib/unittest/user_memory.h> has #include <ktl/move.h>.
      "$zx/kernel/lib/ktl:headers",
    ]
    deps += [ "$zx/kernel/lib/console" ]
  } else {
    sources += [ "phys.cc" ]
    deps += [
      "$zx/kernel/lib/ktl",
      "$zx/kernel/lib/libc",
    ]
  }
}
