blob: cecd16941ab828631247ea82cb9e303211e452b7 [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/bind/bind.gni")
import("//build/components.gni")
import("//build/drivers.gni")
import("//build/test.gni")
driver_bind_rules("coordinator_bind") {
rules = "meta/coordinator.bind"
bind_output = "display-coordinator.bindbc"
tests = "meta/bind_tests.json"
deps = [ "//src/devices/bind/fuchsia.display" ]
}
fuchsia_cc_driver("coordinator-driver") {
output_name = "display-coordinator"
configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
sources = [
"coordinator-driver.cc",
"coordinator-driver.h",
]
deps = [ ":shared" ]
}
fuchsia_driver_component("coordinator") {
visibility = [
":*",
"//src/graphics/display:drivers",
]
component_name = "display-coordinator"
deps = [ ":coordinator-driver" ]
info = "meta/coordinator-info.json"
manifest = "meta/display-coordinator.cml"
}
fuchsia_driver_package("package") {
package_name = "display-coordinator"
driver_components = [ ":coordinator" ]
}
# Also used by testing/.
source_set("shared") {
visibility = [
"./*",
"//src/graphics/display/lib/fake-display-stack",
]
sources = [
"added-display-info.cc",
"added-display-info.h",
"capture-image.cc",
"capture-image.h",
"client-id.h",
"client-priority.cc",
"client-priority.h",
"client-proxy.cc",
"client-proxy.h",
"client-vsync-queue.cc",
"client-vsync-queue.h",
"client.cc",
"client.h",
"controller.cc",
"controller.h",
"display-config.cc",
"display-config.h",
"display-info.cc",
"display-info.h",
"engine-driver-client-fidl.cc",
"engine-driver-client-fidl.h",
"engine-driver-client.cc",
"engine-driver-client.h",
"engine-listener-fidl-adapter.cc",
"engine-listener-fidl-adapter.h",
"engine-listener.h",
"fence.cc",
"fence.h",
"fidl-conversion.cc",
"fidl-conversion.h",
"id-map.h",
"image-lifecycle-listener.h",
"image.cc",
"image.h",
"layer.cc",
"layer.h",
"vsync-monitor.cc",
"vsync-monitor.h",
"waiting-image-list.cc",
"waiting-image-list.h",
]
public_deps = [
":coordinator_bind",
"//sdk/fidl/fuchsia.hardware.display:fuchsia.hardware.display_cpp",
"//sdk/fidl/fuchsia.hardware.display.engine:fuchsia.hardware.display.engine_cpp",
"//sdk/fidl/fuchsia.hardware.display.types:fuchsia.hardware.display.types_cpp",
"//sdk/fidl/fuchsia.sysmem2:fuchsia.sysmem2_cpp",
"//sdk/lib/async:async-cpp",
"//sdk/lib/driver/compat/cpp",
"//sdk/lib/driver/component/cpp",
"//sdk/lib/driver/devfs/cpp",
"//sdk/lib/driver/logging/cpp",
"//sdk/lib/driver/mmio/cpp",
"//sdk/lib/driver/runtime:driver_runtime_cpp",
"//sdk/lib/fidl",
"//sdk/lib/zbi-format",
"//src/devices/lib/driver:driver_runtime",
"//src/graphics/display/lib/api-types/cpp",
"//src/graphics/display/lib/driver-utils",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/hwreg",
"//zircon/system/ulib/image-format",
"//zircon/system/ulib/inspect",
"//zircon/system/ulib/pretty",
"//zircon/system/ulib/sync",
"//zircon/system/ulib/sync:sync-cpp",
"//zircon/system/ulib/trace",
"//zircon/system/ulib/zx",
]
# TODO(https://fxbug.dev/42085293): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-vla-cxx-extension" ]
# TODO(https://fxbug.dev/446717362): Scenic also has a display:: namespace.
assert_no_deps = [ "//src/ui/scenic/lib/display/*" ]
}
source_set("preferred-scanout-image-type") {
sources = [ "preferred-scanout-image-type.h" ]
}
test("display-coordinator-unittests") {
sources = [
"added-display-info-test.cc",
"client-proxy-test.cc",
"client-vsync-queue-test.cc",
"display-info-test.cc",
"engine-driver-client-fidl-test.cc",
"engine-listener-fidl-adapter-test.cc",
"fence-test.cc",
"fidl-conversion-test.cc",
"image-test.cc",
"inspect-test.cc",
"integration-test.cc",
"layer-test.cc",
"waiting-image-list-test.cc",
]
deps = [
":testing",
"//sdk/fidl/fuchsia.hardware.display:fuchsia.hardware.display_cpp_testing",
"//sdk/fidl/fuchsia.hardware.display.types:fuchsia.hardware.display.types_cpp_testing",
"//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_cpp",
"//sdk/fidl/fuchsia.sysmem2:fuchsia.sysmem2_cpp",
"//sdk/lib/async-testing",
"//sdk/lib/driver/testing/cpp",
"//sdk/lib/driver/testing/cpp:scoped_global_logger",
"//src/graphics/display/lib/driver-framework-migration-utils/logging:logging-dfv2",
"//src/lib/fxl/test:gtest_main",
"//src/lib/testing/predicates",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/sync:sync-cpp",
"//zircon/system/ulib/zircon-internal",
]
}
static_library("testing") {
testonly = true
sources = [
"testing/base.cc",
"testing/base.h",
"testing/mock-coordinator-listener.cc",
"testing/mock-coordinator-listener.h",
"testing/mock-engine-fidl.cc",
"testing/mock-engine-fidl.h",
"testing/mock-engine-listener.cc",
"testing/mock-engine-listener.h",
"testing/mock-image-lifecycle-listener.cc",
"testing/mock-image-lifecycle-listener.h",
]
deps = [
"//src/devices/testing/mock-ddk",
"//src/lib/fsl",
]
public_deps = [
":shared",
"//sdk/fidl/fuchsia.hardware.display:fuchsia.hardware.display_cpp",
"//sdk/fidl/fuchsia.hardware.display.types:fuchsia.hardware.display.types_cpp",
"//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_cpp",
"//sdk/fidl/fuchsia.sysmem2:fuchsia.sysmem2_cpp",
"//sdk/lib/async-testing",
"//src/graphics/display/lib/driver-framework-migration-utils/logging:logging-dfv2",
"//src/graphics/display/lib/fake-display-stack",
"//src/graphics/display/lib/fake-display-stack:fake-sysmem-device-hierarchy",
"//src/lib/fxl/test:gtest_main",
"//src/lib/testing/predicates",
"//src/sysmem/server:sysmem_common_srcs",
"//third_party/googletest:gtest",
"//zircon/system/ulib/zircon-internal",
]
}
fuchsia_unittest_package("display-coordinator-unittests-package") {
package_name = "display-coordinator-unittests"
deps = [ ":display-coordinator-unittests" ]
test_specs = {
log_settings = {
max_severity = "ERROR"
}
}
}
group("tests") {
testonly = true
deps = [
":coordinator_bind_test",
":display-coordinator-unittests-package",
]
}