| {{>copyright comment="#"}} | |
| # TODO: You only need one BUILD file. Chose between this one or the gn one and then | |
| # delete the other one. Use bazel for vendor repo drivers. Use gn for in-tree drivers. | |
| load("@rules_cc//cc:cc_library.bzl", "cc_library") | |
| load( | |
| "@rules_fuchsia//fuchsia:defs.bzl", | |
| "fuchsia_cc_driver", | |
| "fuchsia_cc_test", | |
| "fuchsia_component_manifest", | |
| "fuchsia_driver_bind_bytecode", | |
| "fuchsia_driver_component", | |
| "fuchsia_package", | |
| "fuchsia_unittest_package", | |
| ) | |
| package(default_applicable_licenses = ["//:license"]) | |
| fuchsia_driver_bind_bytecode( | |
| name = "bind_bytecode", | |
| output = "{{snake_case PROJECT_NAME}}.bindbc", | |
| rules = "meta/{{snake_case PROJECT_NAME}}.bind", | |
| ) | |
| cc_library( | |
| name = "{{snake_case PROJECT_NAME}}_common", | |
| srcs = [ | |
| "{{snake_case PROJECT_NAME}}.cc", | |
| ], | |
| hdrs = [ | |
| "{{snake_case PROJECT_NAME}}.h", | |
| ], | |
| deps = [ | |
| "@fuchsia_sdk//pkg/driver_component_cpp", | |
| "@fuchsia_sdk//pkg/driver_logging_cpp", | |
| "@fuchsia_sdk//pkg/zx", | |
| ], | |
| ) | |
| fuchsia_cc_driver( | |
| name = "driver", | |
| srcs = ["{{snake_case PROJECT_NAME}}.cc"], | |
| linkshared = True, | |
| output_name = "{{snake_case PROJECT_NAME}}", | |
| deps = [":{{snake_case PROJECT_NAME}}_common"], | |
| ) | |
| fuchsia_component_manifest( | |
| name = "manifest", | |
| src = "meta/{{snake_case PROJECT_NAME}}.cml", | |
| component_name = "{{snake_case PROJECT_NAME}}", | |
| ) | |
| fuchsia_driver_component( | |
| name = "component", | |
| bind_bytecode = ":bind_bytecode", | |
| driver_lib = ":driver", | |
| manifest = ":manifest", | |
| ) | |
| fuchsia_package( | |
| name = "pkg", | |
| package_name = "{{snake_case PROJECT_NAME}}", | |
| components = [":component"], | |
| fuchsia_api_level = "HEAD", | |
| package_repository_name = "fuchsia.com", | |
| visibility = ["//visibility:public"], | |
| ) | |
| fuchsia_cc_test( | |
| name = "{{snake_case PROJECT_NAME}}_test", | |
| srcs = ["tests/{{snake_case PROJECT_NAME}}_test.cc"], | |
| deps = [ | |
| ":{{snake_case PROJECT_NAME}}_common", | |
| "@com_google_googletest//:gtest_main", | |
| "@fuchsia_sdk//pkg/driver_runtime_cpp", | |
| "@fuchsia_sdk//pkg/driver_testing_cpp", | |
| ], | |
| ) | |
| # To use this target make sure to include it in a bazel_test_package_group in the build. | |
| fuchsia_unittest_package( | |
| name = "test_pkg", | |
| package_name = "{{snake_case PROJECT_NAME}}_test", | |
| fuchsia_api_level = "HEAD", | |
| unit_tests = [":{{snake_case PROJECT_NAME}}_test"], | |
| visibility = ["//visibility:public"], | |
| ) |