blob: 4a2739b4764fd6c968be46a10a5db6ded26c91a9 [file] [log] [blame]
# 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/cpp/library_headers.gni")
import("//build/cpp/sdk_source_set.gni")
import("//build/toolchain/toolchain_environment.gni")
library_headers("headers") {
headers = [
"hwreg/asm.h",
"hwreg/bitfields.h",
"hwreg/indirect.h",
"hwreg/internal.h",
"hwreg/mmio.h",
"hwreg/pio.h",
]
public_deps = [
# <hwreg/mmio.h> has #include <lib/mmio-ptr/mmio-ptr.h>.
"//zircon/system/ulib/mmio-ptr",
# <hwreg/array.h> has #include <lib/stdcompat/span.h>.
"//sdk/lib/stdcompat",
]
# TODO(mcgrathr): remove old multiboot environment
if (is_kernel && toolchain_environment != "multiboot") {
public_deps += [
"//zircon/kernel/lib/ktl:headers",
"//zircon/kernel/lib/libc:headers",
]
}
}
source_set("hwreg") {
public_deps = [ ":headers" ]
sources = [ "printers.cc" ]
if (!is_kernel) {
sources += [ "asm.cc" ]
deps = [ "//sdk/lib/fit" ]
}
}
library_headers("hwreg-mock.headers") {
headers = [ "hwreg/mock.h" ]
public_deps = [
":headers",
# <hwreg/mock.h> has #include <lib/mock-function/mock-function.h>.
"//zircon/system/ulib/mock-function:headers",
]
}
source_set("hwreg-mock") {
testonly = true
public_deps = [ ":hwreg-mock.headers" ]
deps = [ "//zircon/system/ulib/mock-function" ]
}
# Subset of API exported via the SDK.
sdk_source_set("hwreg_sdk") {
category = "partner"
sdk_name = "hwreg"
include_dirs = [ "include" ]
public_deps = [
# <hwreg/mmio.h> has #include <lib/mmio-ptr/mmio-ptr.h>.
"//zircon/system/ulib/mmio-ptr",
# <hwreg/internal.h> has #include <lib/stdcompat/atomic.h>.
"//sdk/lib/stdcompat",
]
sources = [
"include/hwreg/bitfields.h",
"include/hwreg/internal.h",
"include/hwreg/mmio.h",
"printers.cc",
]
}
group("tests") {
testonly = true
deps = [ "test:tests" ]
}