# 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

source_set("kernel") {
  sources = [
    "brwlock.cc",
    "cpu_distance_map.cc",
    "cpu_search_set.cc",
    "deadline.cc",
    "debug.cc",
    "dpc.cc",
    "event.cc",
    "idle_power_thread.cc",
    "init.cc",
    "mp.cc",
    "mutex.cc",
    "owned_wait_queue.cc",
    "percpu.cc",
    "restricted.cc",
    "restricted_state.cc",
    "scheduler.cc",
    "scheduler_pi.cc",
    "scheduler_state.cc",
    "semaphore.cc",
    "task_runtime_stats.cc",
    "thread.cc",
    "timer.cc",
    "wait.cc",
  ]

  deps = [
    ":tests",
    "//sdk/lib/fit",
    "//zircon/kernel/dev/interrupt",
    "//zircon/kernel/dev/pdev/hw_watchdog",
    "//zircon/kernel/lib/abi_type_validator",
    "//zircon/kernel/lib/arch",
    "//zircon/kernel/lib/boot-options:headers",
    "//zircon/kernel/lib/console",
    "//zircon/kernel/lib/counters",
    "//zircon/kernel/lib/fbl",
    "//zircon/kernel/lib/heap",
    "//zircon/kernel/lib/init",
    "//zircon/kernel/lib/jtrace",
    "//zircon/kernel/lib/kconcurrent",
    "//zircon/kernel/lib/ktl",
    "//zircon/kernel/lib/ktrace",
    "//zircon/kernel/lib/libc",
    "//zircon/kernel/lib/thread_sampler",
    "//zircon/kernel/lib/topology",
    "//zircon/kernel/lib/version",
    "//zircon/kernel/object",
    "//zircon/kernel/vm",
    "//zircon/system/ulib/affine",
    "//zircon/system/ulib/explicit-memory",
    "//zircon/system/ulib/pretty",
    "//zircon/system/ulib/zircon-internal",
    "//zircon/system/ulib/zx",
  ]

  # TODO(https://fxbug.dev/42101573): This dependency is conditional because when built
  # with GCC the kernel uses function scoped statics requiring dynamic
  # initialization. Once https://fxbug.dev/42101573 is fixed, this dependency can be made
  # unconditional.
  if (!is_gcc) {
    deps += [ "//zircon/kernel/lib/cxxabi-dynamic-init" ]
  }
}

source_set("tests") {
  # TODO: testonly = true
  sources = [
    "mutex_tests.cc",
    "semaphore_tests.cc",
    "spinlock_tests.cc",
    "thread_test.cc",
  ]
  deps = [
    "//zircon/kernel/lib/arch",
    "//zircon/kernel/lib/console",
    "//zircon/kernel/lib/unittest",
    "//zircon/system/ulib/zircon-internal",
  ]
}
