# Copyright 2020 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

load("//pw_build:pigweed.bzl", "pw_cc_library", "pw_cc_test")
load("//pw_protobuf_compiler:proto.bzl", "pw_proto_library")
load("//pw_protobuf_compiler:pw_proto_library.bzl", "pw_proto_filegroup")
load("@com_google_protobuf//:protobuf.bzl", "py_proto_library")
load("@rules_proto//proto:defs.bzl", "proto_library")
load("@rules_proto_grpc//:defs.bzl", "proto_plugin")

package(default_visibility = ["//visibility:public"])

licenses(["notice"])

proto_library(
    name = "benchmark_proto",
    srcs = [
        "benchmark.proto",
    ],
)

pw_proto_library(
    name = "benchmark_cc",
    deps = [":benchmark_proto"],
)

pw_cc_library(
    name = "benchmark",
    srcs = ["benchmark.cc"],
    hdrs = ["public/pw_rpc/benchmark.h"],
    includes = ["public"],
    deps = [
        ":benchmark_cc.pwpb",
        ":benchmark_cc.raw_rpc",
    ],
)

# TODO(b/242059613): Build this as a cc_binary and use it in integration tests.
filegroup(
    name = "test_rpc_server",
    srcs = ["test_rpc_server.cc"],
    # deps = [
    #     "system_server",
    #     ":benchmark",
    #     "//pw_log",
    # ],
)

pw_cc_library(
    name = "client_server",
    srcs = ["client_server.cc"],
    hdrs = ["public/pw_rpc/client_server.h"],
    deps = [":pw_rpc"],
)

pw_cc_library(
    name = "pw_rpc",
    srcs = [
        "call.cc",
        "channel.cc",
        "channel_list.cc",
        "client.cc",
        "client_call.cc",
        "endpoint.cc",
        "packet.cc",
        "packet_meta.cc",
        "public/pw_rpc/internal/call.h",
        "public/pw_rpc/internal/call_context.h",
        "public/pw_rpc/internal/channel.h",
        "public/pw_rpc/internal/channel_list.h",
        "public/pw_rpc/internal/client_call.h",
        "public/pw_rpc/internal/config.h",
        "public/pw_rpc/internal/endpoint.h",
        "public/pw_rpc/internal/hash.h",
        "public/pw_rpc/internal/lock.h",
        "public/pw_rpc/internal/log_config.h",
        "public/pw_rpc/internal/method.h",
        "public/pw_rpc/internal/method_info.h",
        "public/pw_rpc/internal/method_lookup.h",
        "public/pw_rpc/internal/method_union.h",
        "public/pw_rpc/internal/packet.h",
        "public/pw_rpc/internal/server_call.h",
        "public/pw_rpc/method_info.h",
        "public/pw_rpc/method_type.h",
        "public/pw_rpc/writer.h",
        "server.cc",
        "server_call.cc",
        "service.cc",
    ],
    hdrs = [
        "public/pw_rpc/channel.h",
        "public/pw_rpc/client.h",
        "public/pw_rpc/internal/service_client.h",
        "public/pw_rpc/method_id.h",
        "public/pw_rpc/method_info.h",
        "public/pw_rpc/packet_meta.h",
        "public/pw_rpc/server.h",
        "public/pw_rpc/service.h",
        "public/pw_rpc/service_id.h",
    ],
    includes = ["public"],
    deps = [
        ":internal_packet_cc.pwpb",
        "//pw_assert",
        "//pw_bytes",
        "//pw_containers:intrusive_list",
        "//pw_function",
        "//pw_log",
        "//pw_preprocessor",
        "//pw_result",
        "//pw_span",
        "//pw_status",
        "//pw_sync:lock_annotations",
        "//pw_sync:mutex",
        "//pw_thread:sleep",
        "//pw_toolchain:no_destructor",
    ],
)

pw_cc_library(
    name = "synchronous_client_api",
    hdrs = [
        "public/pw_rpc/synchronous_call.h",
        "public/pw_rpc/synchronous_call_result.h",
    ],
    includes = ["public"],
    deps = [
        ":pw_rpc",
        "//pw_chrono:system_clock",
        "//pw_sync:timed_thread_notification",
    ],
)

pw_cc_library(
    name = "client_server_testing",
    hdrs = ["public/pw_rpc/internal/client_server_testing.h"],
    includes = ["public"],
    deps = [
        ":client_server",
        ":internal_test_utils",
        "//pw_bytes",
        "//pw_result",
    ],
)

pw_cc_library(
    name = "client_server_testing_threaded",
    hdrs = ["public/pw_rpc/internal/client_server_testing_threaded.h"],
    includes = ["public"],
    deps = [
        ":client_server_testing",
        "//pw_bytes",
        "//pw_result",
        "//pw_sync:binary_semaphore",
        "//pw_sync:lock_annotations",
        "//pw_sync:mutex",
        "//pw_thread:thread",
    ],
)

pw_cc_library(
    name = "test_helpers",
    hdrs = ["public/pw_rpc/test_helpers.h"],
    includes = ["public"],
    deps = [
        ":internal_test_utils",
        ":pw_rpc",
        "//pw_assert",
        "//pw_chrono:system_clock",
        "//pw_status",
        "//pw_sync:counting_semaphore",
        "//pw_thread:yield",
    ],
)

# thread_testing target is kept for backward compatibility.
# New code should use test_helpers instead.
pw_cc_library(
    name = "thread_testing",
    hdrs = ["public/pw_rpc/thread_testing.h"],
    includes = ["public"],
    deps = [":test_helpers"],
)

pw_cc_library(
    name = "internal_test_utils",
    srcs = ["fake_channel_output.cc"],
    hdrs = [
        "public/pw_rpc/internal/fake_channel_output.h",
        "public/pw_rpc/internal/method_impl_tester.h",
        "public/pw_rpc/internal/method_info_tester.h",
        "public/pw_rpc/internal/test_method.h",
        "public/pw_rpc/internal/test_method_context.h",
        "public/pw_rpc/internal/test_utils.h",
        "public/pw_rpc/payloads_view.h",
        "pw_rpc_private/fake_server_reader_writer.h",
    ],
    includes = [
        ".",
        "public",
    ],
    visibility = [":__subpackages__"],
    deps = [
        ":pw_rpc",
        "//pw_assert",
        "//pw_bytes",
        "//pw_containers:filtered_view",
        "//pw_containers:vector",
        "//pw_containers:wrapped_iterator",
        "//pw_rpc/raw:fake_channel_output",
        "//pw_span",
        "//pw_sync:mutex",
    ],
)

pw_cc_library(
    name = "integration_testing",
    srcs = [
        "integration_testing.cc",
    ],
    hdrs = [
        "public/pw_rpc/integration_test_socket_client.h",
        "public/pw_rpc/integration_testing.h",
    ],
    deps = [
        ":pw_rpc",
        "//pw_assert",
        "//pw_hdlc:pw_rpc",
        "//pw_hdlc:rpc_channel_output",
        "//pw_log",
        "//pw_stream:socket_stream",
        "//pw_unit_test",
        "//pw_unit_test:logging_event_handler",
    ],
)

# TODO(b/242059613): Add the client integration test to the build.
filegroup(
    name = "client_integration_test",
    srcs = ["client_integration_test.cc"],
)

pw_cc_test(
    name = "call_test",
    srcs = [
        "call_test.cc",
    ],
    deps = [
        ":internal_test_utils",
        ":pw_rpc",
    ],
)

pw_cc_test(
    name = "callback_test",
    srcs = ["callback_test.cc"],
    deps = [
        ":pw_rpc",
        ":pw_rpc_test_cc.raw_rpc",
        "//pw_rpc/raw:client_testing",
        "//pw_sync:binary_semaphore",
        "//pw_thread:sleep",
        "//pw_thread:test_threads_header",
        "//pw_thread:yield",
        "//pw_thread_stl:test_threads",
    ],
)

pw_cc_test(
    name = "channel_test",
    srcs = ["channel_test.cc"],
    deps = [
        ":internal_test_utils",
        ":pw_rpc",
    ],
)

pw_cc_test(
    name = "method_test",
    srcs = ["method_test.cc"],
    deps = [
        ":internal_test_utils",
        ":pw_rpc",
    ],
)

pw_cc_test(
    name = "packet_test",
    srcs = [
        "packet_test.cc",
    ],
    deps = [
        ":pw_rpc",
    ],
)

pw_cc_test(
    name = "packet_meta_test",
    srcs = [
        "packet_meta_test.cc",
    ],
    deps = [
        ":pw_rpc",
    ],
)

pw_cc_test(
    name = "client_server_test",
    srcs = ["client_server_test.cc"],
    deps = [
        ":client_server",
        ":internal_test_utils",
        "//pw_rpc/raw:server_api",
    ],
)

pw_cc_test(
    name = "server_test",
    srcs = [
        "server_test.cc",
    ],
    deps = [
        ":internal_test_utils",
        ":pw_rpc",
        "//pw_assert",
    ],
)

pw_cc_test(
    name = "service_test",
    srcs = [
        "service_test.cc",
    ],
    deps = [
        ":internal_test_utils",
        ":pw_rpc",
        "//pw_assert",
    ],
)

pw_cc_test(
    name = "fake_channel_output_test",
    srcs = ["fake_channel_output_test.cc"],
    deps = [":internal_test_utils"],
)

# TODO(b/234874064): Add test_helpers_test when it is possible to use .options
# in bazel build.
filegroup(
    name = "test_helpers_test",
    srcs = ["test_helpers_test.cc"],
)

proto_library(
    name = "internal_packet_proto",
    srcs = ["internal/packet.proto"],
    visibility = [":__subpackages__"],
)

java_lite_proto_library(
    name = "packet_proto_java_lite",
    deps = [":internal_packet_proto"],
)

py_proto_library(
    name = "internal_packet_proto_pb2",
    srcs = ["internal/packet.proto"],
)

pw_proto_library(
    name = "internal_packet_cc",
    deps = [":internal_packet_proto"],
)

proto_library(
    name = "pw_rpc_test_proto",
    srcs = [
        "pw_rpc_test_protos/no_package.proto",
        "pw_rpc_test_protos/test.proto",
    ],
    strip_import_prefix = "/pw_rpc",
)

pw_proto_library(
    name = "pw_rpc_test_cc",
    deps = [":pw_rpc_test_proto"],
)

proto_plugin(
    name = "pw_cc_plugin_raw",
    outputs = [
        "{protopath}.raw_rpc.pb.h",
    ],
    protoc_plugin_name = "raw_rpc",
    tool = "@pigweed//pw_rpc/py:plugin_raw",
    use_built_in_shell_environment = True,
    visibility = ["//visibility:public"],
)

proto_plugin(
    name = "pw_cc_plugin_nanopb_rpc",
    outputs = [
        "{protopath}.rpc.pb.h",
    ],
    protoc_plugin_name = "nanopb_rpc",
    tool = "@pigweed//pw_rpc/py:plugin_nanopb",
    use_built_in_shell_environment = True,
    visibility = ["//visibility:public"],
)

proto_plugin(
    name = "nanopb_plugin",
    options = [
        "--library-include-format='#include\"%s\"'",
    ],
    outputs = [
        "{protopath}.pb.h",
        "{protopath}.pb.c",
    ],
    separate_options_flag = True,
    tool = "@com_github_nanopb_nanopb//:bazel_generator",
    use_built_in_shell_environment = True,
    visibility = ["//visibility:public"],
)

proto_plugin(
    name = "pw_cc_plugin_pwpb_rpc",
    outputs = [
        "{protopath}.rpc.pwpb.h",
    ],
    protoc_plugin_name = "pwpb_rpc",
    tool = "@pigweed//pw_rpc/py:plugin_pwpb",
    use_built_in_shell_environment = True,
    visibility = ["//visibility:public"],
)

pw_proto_filegroup(
    name = "echo_proto_and_options",
    srcs = ["echo.proto"],
    options_files = ["echo.options"],
)

proto_library(
    name = "echo_proto",
    srcs = [":echo_proto_and_options"],
)

py_proto_library(
    name = "echo_py_pb2",
    srcs = ["echo.proto"],
)

pw_proto_library(
    name = "echo_cc",
    deps = [":echo_proto"],
    # TODO(tpudlik): We should provide echo.options to nanopb here, but the
    # current proto codegen implementation provides no mechanism for doing so.
)
