blob: 6d276de296029df1de81d02fdffcd4fc1801664d [file] [log] [blame]
{{>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_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",
)
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"],
)