# 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/toolchain/toolchain_environment.gni")
import("//build/zircon/zx_library.gni")

zx_library("pc") {
  sources = [
    "acpi.cc",
    "cmos_bootbyte.cc",
    "console.cc",
    "debug.cc",
    "efi.cc",
    "efi_crashlog.cc",
    "hpet.cc",
    "interrupts.cc",
    "keyboard.cc",
    "memory.cc",
    "pcie_quirks.cc",
    "pic.cc",
    "platform.cc",
    "platform_pcie.cc",
    "power.cc",
    "smbios.cc",
    "timer.cc",
  ]
  deps = [
    ":tests",
    "//zircon/kernel/arch/x86:headers",
    "//zircon/kernel/dev/interrupt",
    "//zircon/kernel/dev/pcie",
    "//zircon/kernel/lib/acpi_lite",
    "//zircon/kernel/lib/arch",
    "//zircon/kernel/lib/boot-options",
    "//zircon/kernel/lib/cbuf",
    "//zircon/kernel/lib/console",
    "//zircon/kernel/lib/counters",
    "//zircon/kernel/lib/debuglog",
    "//zircon/kernel/lib/efi",
    "//zircon/kernel/lib/fbl",
    "//zircon/kernel/lib/fixed_point",
    "//zircon/kernel/lib/gfxconsole",
    "//zircon/kernel/lib/init",
    "//zircon/kernel/lib/jtrace:headers",
    "//zircon/kernel/lib/ktl",
    "//zircon/kernel/lib/lockdep",
    "//zircon/kernel/lib/memory_limit",
    "//zircon/kernel/lib/pow2_range_allocator",
    "//zircon/kernel/lib/topology",
    "//zircon/kernel/lib/unittest",
    "//zircon/kernel/phys:handoff",
    "//zircon/system/ulib/explicit-memory",
    "//zircon/system/ulib/ram-crashlog",
    "//zircon/system/ulib/smbios",
    "//zircon/system/ulib/zbitl",
    "//zircon/third_party/ulib/cksum",
  ]
  public_deps = [
    # <platform/pc/smbios.h> has #include <lib/smbios/smbios.h>.
    "//zircon/system/ulib/smbios:headers",

    # <platform/pc/efi.h> has #include <efi/runtime_services.h>
    "//zircon/kernel/lib/efi:headers",
  ]

  if (toolchain_environment == "kernel") {
    public_deps += [
      # <platform/pc/timer.h> has #include <lib/affine/ratio.h>.
      "//zircon/system/ulib/affine",
    ]
  }
}

source_set("tests") {
  # TODO: testonly = true
  sources = [
    "efi_test.cc",
    "interrupts_test.cc",
  ]
  deps = [
    ":headers",
    "//zircon/kernel/dev/interrupt",
    "//zircon/kernel/lib/console",
    "//zircon/kernel/lib/pow2_range_allocator",
    "//zircon/kernel/lib/unittest",
  ]
}
