// Copyright 2022 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.

package {
    default_applicable_licenses: ["external_pigweed_license"],
}

java_library {
    name: "pw_rpc_java_client",
    srcs: ["java/main/dev/pigweed/pw_rpc/*.java"],
    visibility: ["//visibility:public"],
    static_libs: [
        "pw_log_android_java",
        "pw_rpc_packet_proto_java_lite",
    ],
    libs: [
        "auto_value_annotations",
        "guava",
        "jsr305",
        "libprotobuf-java-lite",
    ],
    plugins: ["auto_value_plugin"],
    sdk_version: "current",
}

java_library_static {
    name: "pw_rpc_packet_proto_java_lite",
    host_supported: true,
    proto: {
        type: "lite",
    },
    srcs: ["internal/packet.proto"],
    sdk_version: "current",
}

java_library_static {
    name: "pw_rpc_echo_proto_java_lite",
    visibility: ["//visibility:public"],
    host_supported: true,
    proto: {
        type: "lite",
    },
    srcs: ["echo.proto"],
    sdk_version: "current",
}

filegroup {
    name: "pw_rpc_src_files",
    srcs: [
        "call.cc",
        "channel.cc",
        "channel_list.cc",
        "client.cc",
        "client_call.cc",
        "client_server.cc",
        "endpoint.cc",
        "packet.cc",
        "packet_meta.cc",
        "server.cc",
        "server_call.cc",
        "service.cc",
    ],
}

// Do not use this directly. It is used by the pw_rpc_defaults to keep the
// path to the "public" directory relative to this module.
cc_library_headers {
    name: "pw_rpc_include_dirs",
    export_include_dirs: [
        "public",
    ],
    vendor_available: true,
    host_supported: true,
}

// This rule must be instantiated, i.e.
//
//   cc_library_static {
//       name: "pw_rpc_<instance_name>",
//       defaults: [
//           "pw_rpc_cflags_<instance_name>",
//           "pw_rpc_defaults",
//       ],
//   }
//
// where pw_rpc_cflags_<instance_name> defines your flags, i.e.
//
//   cc_defaults {
//       name: "pw_rpc_cflags_<instance_name>",
//       cflags: [
//           "-DPW_RPC_USE_GLOBAL_MUTEX=0",
//           "-DPW_RPC_COMPLETION_REQUEST_CALLBACK",
//           "-DPW_RPC_DYNAMIC_ALLOCATION",
//       ],
//   }
//
// see pw_rpc_nanopb_defaults, pw_rpc_raw_defaults
cc_defaults {
    name: "pw_rpc_defaults",
    cpp_std: "c++20",
    defaults: [
        "pw_android_common_backends",
    ],
    header_libs: [
        "fuchsia_sdk_lib_fit",
        "fuchsia_sdk_lib_stdcompat",
        "pw_assert",
        "pw_log",
        "pw_rpc_include_dirs",
        "pw_sync",
    ],
    export_header_lib_headers: [
        "fuchsia_sdk_lib_fit",
        "fuchsia_sdk_lib_stdcompat",
        "pw_assert",
        "pw_log",
        "pw_rpc_include_dirs",
        "pw_sync",
    ],
    static_libs: [
        "pw_bytes",
        "pw_containers",
        "pw_function",
        "pw_polyfill",
        "pw_preprocessor",
        "pw_protobuf",
        "pw_result",
        "pw_span",
        "pw_status",
        "pw_stream",
        "pw_string",
        "pw_sync_baremetal",
        "pw_toolchain",
        "pw_varint",
    ],
    export_static_lib_headers: [
        "pw_bytes",
        "pw_containers",
        "pw_function",
        "pw_polyfill",
        "pw_preprocessor",
        "pw_protobuf",
        "pw_result",
        "pw_span",
        "pw_status",
        "pw_stream",
        "pw_string",
        "pw_sync_baremetal",
        "pw_toolchain",
        "pw_varint",
    ],
    generated_headers: [
        "pw_rpc_internal_packet_pwpb_h",
    ],
    export_generated_headers: [
        "pw_rpc_internal_packet_pwpb_h",
    ],
    srcs: [
        ":pw_rpc_src_files",
    ],
}

genrule {
    name: "pw_rpc_internal_packet_pwpb_h",
    srcs: ["internal/packet.proto"],
    cmd: "python3 $(location pw_protobuf_compiler_py) " +
        "--out-dir=$$(dirname $(location pw_rpc/internal/packet.pwpb.h)) " +
        "--plugin-path=$(location pw_protobuf_plugin_py) " +
        "--compile-dir=$$(dirname $(in)) " +
        "--sources $(in) " +
        "--language pwpb " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc) ",
    out: [
        "pw_rpc/internal/packet.pwpb.h",
    ],
    tools: [
        "aprotoc",
        "pw_protobuf_plugin_py",
        "pw_protobuf_compiler_py",
    ],
}

genrule {
    name: "pw_rpc_internal_packet_py",
    srcs: ["internal/packet.proto"],
    cmd: "python3 $(location pw_protobuf_compiler_py) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$$(dirname $(in)) " +
        "--sources $(in) " +
        "--language python " +
        "--no-generate-type-hints " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    out: [
        "packet_pb2.py",
    ],
    tools: [
        "aprotoc",
        "pw_protobuf_compiler_py",
    ],
}

// Generate cc and header nanopb files.
// The output file names are based on the srcs file name with a .pb.c / .pb.h extension.
genrule_defaults {
    name: "pw_rpc_generate_nanopb_proto",
    cmd: "in_files=($(in)); compile_dir=$$(dirname $${in_files[0]}); " +
        "python3 $(location pw_protobuf_compiler_py) " +
        "--plugin-path=$(location protoc-gen-nanopb) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$${compile_dir} " +
        "--language nanopb " +
        "--sources $(in) " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    tools: [
        "aprotoc",
        "protoc-gen-nanopb",
        "pw_protobuf_compiler_py",
    ],
}

// Same as pw_rpc_generate_nanopb_proto but the proto files are compiled with a
// single prefix, which can be added with pw_rpc_add_prefix_to_proto.
// Since pw_rpc_add_prefix_to_proto may include .option files as an input, only
// .proto files are passed to the compile script. Make sure .option files are
// prefixed in the same rule as their .proto files.
//
// See the pw_rpc_echo_service_nanopb target for an example. The echo.proto file
// is compiled with "pw_rpc" as the prefix.
genrule_defaults {
    name: "pw_rpc_generate_nanopb_proto_with_prefix",
    cmd: "in_files=($(in)); prefix_dir=$$(dirname $${in_files[0]}); " +
        "compile_dir=$$(dirname $${prefix_dir}); proto_files=(); " +
        "for f in \"$${in_files[@]}\"; do " +
        "if [[ \"$${f##*.}\" == \"proto\" ]]; then " +
        "proto_files+=(\"$${f}\"); fi; done; " +
        "python3 $(location pw_protobuf_compiler_py) " +
        "--plugin-path=$(location protoc-gen-nanopb) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$${compile_dir} " +
        "--language nanopb " +
        "--sources $${proto_files} " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    tools: [
        "aprotoc",
        "protoc-gen-nanopb",
        "pw_protobuf_compiler_py",
    ],
}

// Generate the header nanopb RPC file.
// The output file name is based on the srcs file name with a .rpc.pb.h extension.
genrule_defaults {
    name: "pw_rpc_generate_nanopb_rpc_header",
    cmd: "in_files=($(in)); compile_dir=$$(dirname $${in_files[0]}); " +
        "python3 $(location pw_protobuf_compiler_py) " +
        "--plugin-path=$(location pw_rpc_plugin_nanopb_py) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$${compile_dir} " +
        "--language nanopb_rpc " +
        "--sources $(in) " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    tools: [
        "aprotoc",
        "pw_protobuf_compiler_py",
        "pw_rpc_plugin_nanopb_py",
    ],
}

// Same as pw_rpc_generate_nanopb_rpc_header but the proto files are compiled
// with a single prefix, which can be added with pw_rpc_add_prefix_to_proto.
// Since pw_rpc_add_prefix_to_proto may include .option files as an input, only
// .proto files are passed to the compile script. Make sure .option files are
// prefixed in the same rule as their .proto files.
//
// See the pw_rpc_echo_service_nanopb target for an example. The echo.proto file
// is compiled with "pw_rpc" as the prefix.
genrule_defaults {
    name: "pw_rpc_generate_nanopb_rpc_header_with_prefix",
    cmd: "in_files=($(in)); prefix_dir=$$(dirname $${in_files[0]}); " +
        "compile_dir=$$(dirname $${prefix_dir}); proto_files=(); " +
        "for f in \"$${in_files[@]}\"; do " +
        "if [[ \"$${f##*.}\" == \"proto\" ]]; then " +
        "proto_files+=(\"$${f}\"); fi; done; " +
        "python3 $(location pw_protobuf_compiler_py) " +
        "--plugin-path=$(location pw_rpc_plugin_nanopb_py) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$${compile_dir} " +
        "--language nanopb_rpc " +
        "--sources $${proto_files} " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    tools: [
        "aprotoc",
        "pw_protobuf_compiler_py",
        "pw_rpc_plugin_nanopb_py",
    ],
}

// Generate the header raw RPC file.
// The output file name is based on the srcs file name with a .raw_rpc.pb.h extension.
genrule_defaults {
    name: "pw_rpc_generate_raw_rpc_header",
    cmd: "in_files=($(in)); compile_dir=$$(dirname $${in_files[0]}); " +
        "python3 $(location pw_protobuf_compiler_py) " +
        "--plugin-path=$(location pw_rpc_plugin_rawpb_py) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$${compile_dir} " +
        "--language raw_rpc " +
        "--sources $(in) " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    tools: [
        "aprotoc",
        "pw_protobuf_compiler_py",
        "pw_rpc_plugin_rawpb_py",
    ],
}

// Generate header pwpb files.
// The output file names are based on the srcs file name with a .pwpb.h extension.
genrule_defaults {
    name: "pw_rpc_generate_pwpb_proto",
    cmd: "in_files=($(in)); compile_dir=$$(dirname $${in_files[0]}); " +
        "python3 $(location pw_protobuf_compiler_py) " +
        "--plugin-path=$(location pw_protobuf_plugin_py) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$${compile_dir} " +
        "--language pwpb " +
        "--sources $(in) " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    tools: [
        "aprotoc",
        "pw_protobuf_plugin_py",
        "pw_protobuf_compiler_py",
    ],
}

// Same as pw_rpc_generate_pwpb_proto but the proto files are compiled with a
// single prefix, which can be added with pw_rpc_add_prefix_to_proto.
// Since pw_rpc_add_prefix_to_proto may include .option files as an input, only
// .proto files are passed to the compile script. Make sure .option files are
// prefixed in the same rule as their .proto files.
//
// See the pw_rpc_echo_service_pwpb target for an example. The echo.proto file
// is compiled with "pw_rpc" as the prefix.
genrule_defaults {
    name: "pw_rpc_generate_pwpb_proto_with_prefix",
    cmd: "in_files=($(in)); prefix_dir=$$(dirname $${in_files[0]}); " +
        "compile_dir=$$(dirname $${prefix_dir}); proto_files=(); " +
        "for f in \"$${in_files[@]}\"; do " +
        "if [[ \"$${f##*.}\" == \"proto\" ]]; then " +
        "proto_files+=(\"$${f}\"); fi; done; " +
        "python3 $(location pw_protobuf_compiler_py) " +
        "--plugin-path=$(location pw_protobuf_plugin_py) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$${compile_dir} " +
        "--language pwpb " +
        "--sources $${proto_files} " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    tools: [
        "aprotoc",
        "pw_protobuf_plugin_py",
        "pw_protobuf_compiler_py",
    ],
}

// Generate the header pwpb RPC file.
// The output file name is based on the srcs file name with a .rpc.pwpb.h extension.
genrule_defaults {
    name: "pw_rpc_generate_pwpb_rpc_header",
    cmd: "in_files=($(in)); compile_dir=$$(dirname $${in_files[0]}); " +
        "python3 $(location pw_protobuf_compiler_py) " +
        "--plugin-path=$(location pw_rpc_plugin_pwpb_py) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$${compile_dir} " +
        "--language pwpb_rpc " +
        "--sources $(in) " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    tools: [
        "aprotoc",
        "pw_protobuf_compiler_py",
        "pw_rpc_plugin_pwpb_py",
    ],
}

// Same as pw_rpc_generate_pwpb_rpc_header but the proto files are compiled
// with a single prefix, which can be added with pw_rpc_add_prefix_to_proto.
// Since pw_rpc_add_prefix_to_proto may include .option files as an input, only
// .proto files are passed to the compile script. Make sure .option files are
// prefixed in the same rule as their .proto files.
//
// See the pw_rpc_echo_service_pwpb target for an example. The echo.proto file
// is compiled with "pw_rpc" as the prefix.
genrule_defaults {
    name: "pw_rpc_generate_pwpb_rpc_header_with_prefix",
    cmd: "in_files=($(in)); prefix_dir=$$(dirname $${in_files[0]}); " +
        "compile_dir=$$(dirname $${prefix_dir}); proto_files=(); " +
        "for f in \"$${in_files[@]}\"; do " +
        "if [[ \"$${f##*.}\" == \"proto\" ]]; then " +
        "proto_files+=(\"$${f}\"); fi; done; " +
        "python3 $(location pw_protobuf_compiler_py) " +
        "--plugin-path=$(location pw_rpc_plugin_pwpb_py) " +
        "--out-dir=$(genDir) " +
        "--compile-dir=$${compile_dir} " +
        "--language pwpb_rpc " +
        "--sources $${proto_files} " +
        "--no-experimental-proto3-optional " +
        "--protoc=$(location aprotoc)",
    tools: [
        "aprotoc",
        "pw_protobuf_compiler_py",
        "pw_rpc_plugin_pwpb_py",
    ],
}

// Copies the proto files to a prefix directory to add the prefix to the
// compiled proto. The prefix is taken from the directory name of the first
// item listen in out.
genrule_defaults {
    name: "pw_rpc_add_prefix_to_proto",
    cmd: "out_files=($(out)); prefix=$$(dirname $${out_files[0]}); " +
        "mkdir -p $${prefix}; cp -t $${prefix} $(in);",
}

genrule {
    name: "pw_rpc_echo_proto_with_prefix",
    defaults: ["pw_rpc_add_prefix_to_proto"],
    srcs: [
        "echo.options",
        "echo.proto",
    ],
    out: [
        "pw_rpc/echo.options",
        "pw_rpc/echo.proto",
    ],
}

genrule {
    name: "pw_rpc_echo_rpc_header",
    defaults: ["pw_rpc_generate_nanopb_rpc_header_with_prefix"],
    srcs: [":pw_rpc_echo_proto_with_prefix"],
    out: ["pw_rpc/echo.rpc.pb.h"],
}

genrule {
    name: "pw_rpc_echo_proto_header",
    defaults: ["pw_rpc_generate_nanopb_proto_with_prefix"],
    srcs: [":pw_rpc_echo_proto_with_prefix"],
    out: ["pw_rpc/echo.pb.h"],
}

genrule {
    name: "pw_rpc_echo_proto_source",
    defaults: ["pw_rpc_generate_nanopb_proto_with_prefix"],
    srcs: [":pw_rpc_echo_proto_with_prefix"],
    out: ["pw_rpc/echo.pb.c"],
}

// This is a copy of the echo.pb.h header, since the generated echo.pb.c
// includes it by file name, while pw_rpc/nanopb/echo_service_nanopb.h includes
// it with a prefix.
// Soong makes it very hard to add include directories when they don't come from
// modules, so this is a kludge to add an include directory path without a
// prefix.
genrule {
    name: "pw_rpc_echo_proto_header_copy",
    cmd: "cp $(in) $(out)",
    srcs: [":pw_rpc_echo_proto_header"],
    out: ["echo.pb.h"],
}

cc_library_static {
    name: "pw_rpc_echo_service_nanopb",
    cpp_std: "c++20",
    vendor_available: true,
    host_supported: true,
    export_include_dirs: ["public/pw_rpc"],
    generated_headers: [
        "pw_rpc_echo_proto_header",
        "pw_rpc_echo_proto_header_copy",
        "pw_rpc_echo_rpc_header",
    ],
    export_generated_headers: [
        "pw_rpc_echo_proto_header",
        "pw_rpc_echo_proto_header_copy",
        "pw_rpc_echo_rpc_header",
    ],
    generated_sources: ["pw_rpc_echo_proto_source"],
    static_libs: ["libprotobuf-c-nano"],
}

genrule {
    name: "pw_rpc_echo_pwpb_rpc_header",
    defaults: ["pw_rpc_generate_pwpb_rpc_header_with_prefix"],
    srcs: [":pw_rpc_echo_proto_with_prefix"],
    out: ["pw_rpc/echo.rpc.pwpb.h"],
}

genrule {
    name: "pw_rpc_echo_pwpb_proto_header",
    defaults: ["pw_rpc_generate_pwpb_proto_with_prefix"],
    srcs: [":pw_rpc_echo_proto_with_prefix"],
    out: ["pw_rpc/echo.pwpb.h"],
}

cc_library_static {
    name: "pw_rpc_echo_service_pwpb",
    cpp_std: "c++20",
    vendor_available: true,
    host_supported: true,
    export_include_dirs: ["public/pw_rpc"],
    generated_headers: [
        "pw_rpc_echo_pwpb_proto_header",
        "pw_rpc_echo_pwpb_rpc_header",
    ],
    export_generated_headers: [
        "pw_rpc_echo_pwpb_proto_header",
        "pw_rpc_echo_pwpb_rpc_header",
    ],
}

python_library_host {
    name: "pw_rpc_internal_packet_py_lib",
    srcs: [
        ":pw_rpc_internal_packet_py",
    ],
    pkg_path: "pw_rpc/internal",
}
