# Copyright 2020 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("coresight") {
  kernel = true
  host = true

  sources = [ "rom_table.cc" ]
  deps = []
  public_deps = [
    # <hwreg/bitfields.h> and <hwreg/mmio.h>.
    "//zircon/system/ulib/hwreg:headers",

    # <lib/fitx/result.h>.
    "//zircon/system/ulib/zxc:headers",
  ]
  include_dirs = [ "include/dev/coresight" ]

  if (is_host) {
    # TODO : revist the following three specifications after the zircon - to - fuchsia
    # build migration.They seem currently required in order to export the host
    # compilation of this library to the fuchsia build.
    static = true
    sdk = "source"
    sdk_headers = []
    sdk_migrated = true
  }
}
