blob: 2fb84364872eba255d7e3b2983592e71b58b7087 [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.
##########################################
# Though under //zircon, this build file #
# is meant to be used in the Fuchsia GN #
# build. #
# See fxb/36139. #
##########################################
assert(!defined(zx) || zx != "/",
"This file can only be used in the Fuchsia GN build.")
import("//build/config/fuchsia/rules.gni")
import("//build/test.gni")
import("//build/unification/images/migrated_manifest.gni")
assert(current_cpu == "x64")
declare_args() {
# Setting this config to true only makes sense if the zircon enable_user_pci config is also true.
# We define a separate config here for the moment due to not quite unified builds and the
# difficulty of sharing configs between builds.
platform_enable_user_pci = false
}
group("x86") {
deps = [ ":platform-bus-x86" ]
}
config("config") {
visibility = [ ":*" ]
include_dirs = [ "include" ]
if (platform_enable_user_pci) {
defines = [ "ENABLE_USER_PCI" ]
}
cflags = [ "-Wno-null-pointer-arithmetic" ]
cflags_c = [ "-fno-strict-aliasing" ]
}
source_set("smbios") {
visibility = [ ":*" ]
sources = [ "smbios.cc" ]
configs += [ ":config" ]
deps = [
"//zircon/public/lib/ddk",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fzl",
"//zircon/public/lib/smbios",
"//zircon/public/lib/zx",
]
}
source_set("iommu") {
visibility = [ ":*" ]
sources = [ "iommu.cc" ]
configs += [ ":config" ]
deps = [
"//third_party/acpica",
"//zircon/public/lib/ddk",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fzl",
"//zircon/public/lib/zx",
]
}
driver_module("platform-bus-x86") {
defines = [ "_ALL_SOURCE" ]
configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
if (is_fuchsia) {
configs += [ "//build/unification/config:zircon-migrated" ]
}
sources = [
"acpi-dev/dev-battery.cc",
"acpi-dev/dev-cros-ec/acpi.cc",
"acpi-dev/dev-cros-ec/dev.cc",
"acpi-dev/dev-cros-ec/motion.cc",
"acpi-dev/dev-ec.cc",
"acpi-dev/dev-lid.cc",
"acpi-dev/dev-lid.h",
"acpi-dev/dev-pwrbtn.cc",
"acpi-dev/dev-pwrsrc.cc",
"acpi-dev/dev-tbmc.cc",
"acpi-dev/dev-thermal.cc",
"acpi-nswalk.cc",
"debug.cc",
"init.cc",
"iommu-driver-tests.cc",
"methods.cc",
"nhlt.cc",
"pciroot.cc",
"power.cc",
"resources.cc",
"sysmem.cc",
"util.cc",
"x86-driver-tests.cc",
"x86.cc",
"x86.h",
]
# Userspace PCI feature flag. The scaffolding for the userspace pci bus
# driver is in pci.cpp. If not enabled then the kernel pci bus driver
# initialization code in ACPI (kpci.cc) will be built instead.
if (platform_enable_user_pci) {
sources += [ "pci.cc" ]
} else {
sources += [ "kpci.cc" ]
}
configs += [ ":config" ]
deps = [
":iommu",
":smbios",
"//sdk/banjo/ddk.protocol.acpi",
"//sdk/banjo/ddk.protocol.pciroot",
"//sdk/fidl/fuchsia.hardware.power:fuchsia.hardware.power_c",
"//sdk/fidl/fuchsia.hardware.thermal:fuchsia.hardware.thermal_c",
"//src/devices/lib/driver",
"//third_party/acpica",
"//zircon/public/lib/ddk",
"//zircon/public/lib/ddktl",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fit",
"//zircon/public/lib/hid",
"//zircon/public/lib/lazy_init",
"//zircon/public/lib/pci",
"//zircon/public/lib/region-alloc",
"//zircon/public/lib/zircon-internal",
"//zircon/public/lib/zxtest",
"//zircon/system/banjo/ddk.protocol.hidbus",
"//zircon/system/banjo/ddk.protocol.platform.bus",
"//zircon/system/banjo/ddk.protocol.platform.device",
"//zircon/system/banjo/ddk.protocol.scpi",
"//zircon/system/banjo/ddk.protocol.sysmem",
"//zircon/system/fidl/fuchsia-hardware-acpi:llcpp",
"//zircon/system/fidl/fuchsia-sysinfo:c",
"//zircon/system/fidl/fuchsia-sysmem:c",
"//zircon/system/ulib/driver-unit-test",
"//zircon/third_party/ulib/chromiumos-platform-ec",
]
public_configs = [ "$zx_build/public/gn/config:default_warnings" ]
}
test("x86-battery-test") {
# Dependent manifests unfortunately cannot be marked as `testonly`.
# TODO(44278): Remove when converting this file to proper GN build idioms.
if (is_fuchsia) {
testonly = false
}
if (is_fuchsia) {
configs += [ "//build/unification/config:zircon-migrated" ]
}
if (is_fuchsia) {
fdio_config = [ "//build/config/fuchsia:fdio_config" ]
if (configs + fdio_config - fdio_config != configs) {
configs -= fdio_config
}
}
output_name = "x86-battery-test"
test_group = "ddk"
sources = [
"acpi-dev/dev-battery-test.cc",
"acpi-dev/dev-battery.cc",
]
configs += [ ":config" ]
deps = [
"//sdk/banjo/ddk.protocol.acpi",
"//sdk/banjo/ddk.protocol.pciroot",
"//sdk/fidl/fuchsia.hardware.power:fuchsia.hardware.power_c",
"//sdk/fidl/fuchsia.hardware.thermal:fuchsia.hardware.thermal_c",
"//src/devices/lib/driver",
"//third_party/acpica",
"//zircon/public/lib/ddk",
"//zircon/public/lib/ddktl",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fdio",
"//zircon/public/lib/hid",
"//zircon/public/lib/pci",
"//zircon/public/lib/region-alloc",
"//zircon/public/lib/zxtest",
"//zircon/system/banjo/ddk.protocol.hidbus",
"//zircon/system/banjo/ddk.protocol.platform.bus",
"//zircon/system/banjo/ddk.protocol.platform.device",
"//zircon/system/banjo/ddk.protocol.scpi",
"//zircon/system/banjo/ddk.protocol.sysmem",
"//zircon/third_party/ulib/chromiumos-platform-ec",
]
}
test("x86-lid-test") {
# Dependent manifests unfortunately cannot be marked as `testonly`.
# TODO(44278): Remove when converting this file to proper GN build idioms.
if (is_fuchsia) {
testonly = false
}
if (is_fuchsia) {
configs += [ "//build/unification/config:zircon-migrated" ]
}
if (is_fuchsia) {
fdio_config = [ "//build/config/fuchsia:fdio_config" ]
if (configs + fdio_config - fdio_config != configs) {
configs -= fdio_config
}
}
output_name = "x86-lid-test"
test_group = "ddk"
sources = [
"acpi-dev/dev-lid-test.cc",
"acpi-dev/dev-lid.cc",
"acpi-dev/dev-lid.h",
]
configs += [ ":config" ]
deps = [
"//sdk/banjo/ddk.protocol.acpi",
"//third_party/acpica",
"//zircon/public/lib/ddk",
"//zircon/public/lib/ddktl",
"//zircon/public/lib/fake_ddk",
"//zircon/public/lib/fbl",
"//zircon/public/lib/hid",
"//zircon/public/lib/sync",
"//zircon/public/lib/zircon-internal",
"//zircon/public/lib/zxtest",
"//zircon/system/banjo/ddk.protocol.hidbus",
"//zircon/system/dev/lib/mock-hidbus-ifc",
]
}
test("x86-pwrsrc-test") {
# Dependent manifests unfortunately cannot be marked as `testonly`.
# TODO(44278): Remove when converting this file to proper GN build idioms.
if (is_fuchsia) {
testonly = false
}
if (is_fuchsia) {
configs += [ "//build/unification/config:zircon-migrated" ]
}
if (is_fuchsia) {
fdio_config = [ "//build/config/fuchsia:fdio_config" ]
if (configs + fdio_config - fdio_config != configs) {
configs -= fdio_config
}
}
output_name = "x86-pwrsrc-test"
test_group = "ddk"
sources = [
"acpi-dev/dev-pwrsrc-test.cc",
"acpi-dev/dev-pwrsrc.cc",
]
configs += [ ":config" ]
deps = [
"//sdk/banjo/ddk.protocol.acpi",
"//sdk/fidl/fuchsia.hardware.power:fuchsia.hardware.power_c",
"//third_party/acpica",
"//zircon/public/lib/ddk",
"//zircon/public/lib/ddktl",
"//zircon/public/lib/fdio",
"//zircon/public/lib/hid",
"//zircon/public/lib/zxtest",
"//zircon/system/banjo/ddk.protocol.hidbus",
"//zircon/system/banjo/ddk.protocol.platform.bus",
"//zircon/system/banjo/ddk.protocol.platform.device",
"//zircon/system/banjo/ddk.protocol.scpi",
"//zircon/system/banjo/ddk.protocol.sysmem",
]
}
test("x86-board-test") {
# Dependent manifests unfortunately cannot be marked as `testonly`.
# TODO(44278): Remove when converting this file to proper GN build idioms.
if (is_fuchsia) {
testonly = false
}
if (is_fuchsia) {
configs += [ "//build/unification/config:zircon-migrated" ]
}
if (is_fuchsia) {
fdio_config = [ "//build/config/fuchsia:fdio_config" ]
if (configs + fdio_config - fdio_config != configs) {
configs -= fdio_config
}
}
test_group = "ddk"
sources = [
"iommu-test.cc",
"smbios-test.cc",
]
configs += [ ":config" ]
deps = [
":iommu",
":smbios",
"//third_party/acpica",
"//zircon/public/lib/fake_ddk",
"//zircon/public/lib/fdio",
"//zircon/public/lib/zxtest",
]
}
test("x86-thermal-test") {
# Dependent manifests unfortunately cannot be marked as `testonly`.
# TODO(44278): Remove when converting this file to proper GN build idioms.
if (is_fuchsia) {
testonly = false
}
if (is_fuchsia) {
configs += [ "//build/unification/config:zircon-migrated" ]
}
if (is_fuchsia) {
fdio_config = [ "//build/config/fuchsia:fdio_config" ]
if (configs + fdio_config - fdio_config != configs) {
configs -= fdio_config
}
}
output_name = "x86-thermal-test"
test_group = "ddk"
sources = [
"acpi-dev/dev-thermal-test.cc",
"acpi-dev/dev-thermal.cc",
"acpi-dev/dev-thermal.h",
]
configs += [ ":config" ]
deps = [
"//sdk/banjo/ddk.protocol.acpi",
"//sdk/fidl/fuchsia.hardware.thermal:fuchsia.hardware.thermal_c",
"//third_party/acpica",
"//zircon/public/lib/async-loop",
"//zircon/public/lib/async-loop-default",
"//zircon/public/lib/ddk",
"//zircon/public/lib/ddktl",
"//zircon/public/lib/fake_ddk",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fdio",
"//zircon/public/lib/fidl-async",
"//zircon/public/lib/zxtest",
]
}
test("x86-cros-ec-test") {
# Dependent manifests unfortunately cannot be marked as `testonly`.
# TODO(44278): Remove when converting this file to proper GN build idioms.
if (is_fuchsia) {
testonly = false
}
if (is_fuchsia) {
configs += [ "//build/unification/config:zircon-migrated" ]
}
if (is_fuchsia) {
fdio_config = [ "//build/config/fuchsia:fdio_config" ]
if (configs + fdio_config - fdio_config != configs) {
configs -= fdio_config
}
}
output_name = "x86-cros-ec-test"
test_group = "ddk"
sources = [
"acpi-dev/dev-cros-ec/acpi.cc",
"acpi-dev/dev-cros-ec/acpi.h",
"acpi-dev/dev-cros-ec/dev.cc",
"acpi-dev/dev-cros-ec/dev.h",
"acpi-dev/dev-cros-ec/motion-test.cc",
"acpi-dev/dev-cros-ec/motion.cc",
]
configs += [ ":config" ]
deps = [
"//sdk/banjo/ddk.protocol.acpi",
"//third_party/acpica",
"//zircon/public/lib/ddk",
"//zircon/public/lib/ddktl",
"//zircon/public/lib/fake_ddk",
"//zircon/public/lib/fbl",
"//zircon/public/lib/hid",
"//zircon/public/lib/sync",
"//zircon/public/lib/zircon-internal",
"//zircon/public/lib/zxtest",
"//zircon/system/banjo/ddk.protocol.hidbus",
"//zircon/system/dev/lib/mock-hidbus-ifc",
"//zircon/system/ulib/hid-parser",
"//zircon/third_party/ulib/chromiumos-platform-ec",
]
}
migrated_manifest("platform-bus-x86-manifest") {
deps = [ ":platform-bus-x86" ]
}
migrated_manifest("x86-battery-test-manifest") {
deps = [ ":x86-battery-test" ]
}
migrated_manifest("x86-lid-test-manifest") {
deps = [ ":x86-lid-test" ]
}
migrated_manifest("x86-pwrsrc-test-manifest") {
deps = [ ":x86-pwrsrc-test" ]
}
migrated_manifest("x86-board-test-manifest") {
deps = [ ":x86-board-test" ]
}
migrated_manifest("x86-thermal-test-manifest") {
deps = [ ":x86-thermal-test" ]
}
migrated_manifest("x86-cros-ec-test-manifest") {
deps = [ ":x86-cros-ec-test" ]
}