# Copyright 2021 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_bind_library",
    "fuchsia_cc_driver",
    "fuchsia_cc_test",
    "fuchsia_component_manifest",
    "fuchsia_driver_bind_bytecode",
    "fuchsia_driver_component",
    "fuchsia_package",
    "fuchsia_select",
    "fuchsia_unittest_package",
)

fuchsia_bind_library(
    name = "examples.driver.bind",
    srcs = [
        "example.bind",
    ],
)

fuchsia_driver_bind_bytecode(
    name = "bind_bytecode",
    output = "example_driver.bindbc",
    rules = "example_driver.bind",
    deps = [
        ":examples.driver.bind",
    ],
)

fuchsia_cc_driver(
    name = "example_driver",
    srcs = [
        "example_driver.cc",
        "example_driver.h",
        "greeter.h",
    ],
    deps = [
        "@fuchsia_sdk//pkg/driver_component_cpp",
    ],
)

fuchsia_component_manifest(
    name = "manifest",
    src = "meta/example_driver.cml",
    includes = [
        "@fuchsia_sdk//pkg/syslog:client",
    ],
)

fuchsia_driver_component(
    name = "component",
    bind_bytecode = ":bind_bytecode",
    driver_lib = ":example_driver",
    manifest = ":manifest",
)

fuchsia_package(
    name = "pkg",
    package_name = "example_driver",
    components = [
        ":component",
    ],
    visibility = ["//visibility:public"],
)

fuchsia_cc_test(
    name = "example_driver_unittest",
    size = "small",
    srcs = [
        "example_driver_unittest.cc",
        "greeter.h",
    ],
    deps = [
        "@com_google_googletest//:gtest_main",
    ] + fuchsia_select({
        "@platforms//os:fuchsia": [
            "@fuchsia_sdk//pkg/fdio",
            "@fuchsia_sdk//pkg/syslog",
        ],
    }),
)

fuchsia_unittest_package(
    name = "test_pkg",
    package_name = "example_driver_test",
    unit_tests = [
        ":example_driver_unittest",
    ],
    visibility = ["//visibility:public"],
)
