| # Copyright 2024 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. |
| |
| load( |
| "@fuchsia_sdk//fuchsia:defs.bzl", |
| "fuchsia_cc_driver", |
| "fuchsia_cc_test", |
| "fuchsia_component_manifest", |
| "fuchsia_driver_bind_bytecode", |
| "fuchsia_driver_component", |
| "fuchsia_package", |
| "fuchsia_package_resource", |
| "fuchsia_test_component", |
| "fuchsia_test_package", |
| ) |
| |
| fuchsia_driver_bind_bytecode( |
| name = "example-board-bind", |
| output = "example-board-bind.bindbc", |
| rules = "example-board.bind", |
| deps = [ |
| "@fuchsia_sdk//bind/fuchsia.devicetree", |
| "@fuchsia_sdk//bind/fuchsia.test.platform", |
| "@internal_sdk//fidl/fuchsia.hardware.platform.bus:fuchsia.hardware.platform.bus_bindlib", |
| ], |
| ) |
| |
| fuchsia_cc_driver( |
| name = "example-board-driver", |
| srcs = [ |
| "example-board.cc", |
| "example-board.h", |
| ], |
| linkshared = True, |
| output_name = "example-board", |
| deps = [ |
| "@fuchsia_sdk//bind/fuchsia.platform:fuchsia.platform_cc", |
| "@fuchsia_sdk//fidl/fuchsia.driver.framework:fuchsia.driver.framework_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.io:fuchsia.io_cpp", |
| "@fuchsia_sdk//pkg/driver_component_cpp", |
| "@fuchsia_sdk//pkg/driver_runtime", |
| "@fuchsia_sdk//pkg/driver_runtime_cpp", |
| "@internal_sdk//fidl/fuchsia.boot:fuchsia.boot_cpp", |
| "@internal_sdk//fidl/fuchsia.hardware.platform.bus:fuchsia.hardware.platform.bus_cpp", |
| "@internal_sdk//pkg/devicetree-default", |
| "@internal_sdk//pkg/devicetree-load-visitors", |
| "@internal_sdk//pkg/devicetree-manager", |
| ], |
| ) |
| |
| fuchsia_component_manifest( |
| name = "manifest", |
| src = "meta/example-board.cml", |
| ) |
| |
| fuchsia_driver_component( |
| name = "component", |
| bind_bytecode = ":example-board-bind", |
| driver_lib = ":example-board-driver", |
| manifest = ":manifest", |
| ) |
| |
| fuchsia_package( |
| name = "example-board", |
| package_name = "example-board", |
| components = [":component"], |
| fuchsia_api_level = "HEAD", |
| package_repository_name = "fuchsia.com", |
| resources = ["//sdk/lib/driver/devicetree/examples/example-visitor"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| fuchsia_package_resource( |
| name = "test-dtb", |
| src = "@legacy_ninja_build_outputs//:test-dtb", |
| dest = "test-data/example-board.dtb", |
| ) |
| |
| fuchsia_cc_test( |
| name = "example-board-test-bin", |
| size = "small", |
| srcs = [ |
| "integration-test.cc", |
| ], |
| copts = [ |
| "-Wno-vla-cxx-extension", |
| ], |
| deps = [ |
| "@com_google_googletest//:gtest", |
| "@com_google_googletest//:gtest_main", |
| "@fuchsia_sdk//pkg/async-loop-cpp", |
| "@fuchsia_sdk//pkg/async-loop-default", |
| "@internal_sdk//pkg/board-test-helper", |
| "@internal_sdk//pkg/ddk-platform-defs", |
| ], |
| ) |
| |
| fuchsia_component_manifest( |
| name = "test-manifest", |
| src = "meta/example-board-test.cml", |
| includes = [ |
| "@internal_sdk//pkg/sys/component:realm_builder", |
| ], |
| ) |
| |
| fuchsia_test_component( |
| name = "example-board-test-component", |
| manifest = ":test-manifest", |
| deps = [":example-board-test-bin"], |
| ) |
| |
| fuchsia_test_package( |
| name = "example-board-test-package", |
| package_name = "example-board-test", |
| components = [ |
| ":component", |
| ], |
| fuchsia_api_level = "HEAD", |
| resources = [ |
| ":test-dtb", |
| "//sdk/lib/driver/devicetree/examples/example-visitor", |
| ], |
| subpackages_to_flatten = [ |
| "//sdk/lib/driver/devicetree/testing:platform-bus-driver", |
| "//sdk/lib/driver/devicetree/testing:driver_test_realm", |
| ], |
| test_components = [ |
| ":example-board-test-component", |
| ], |
| visibility = ["//visibility:public"], |
| ) |