// Copyright 2023 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"],
}

cc_library {
    name: "pw_metric",
    defaults: [
        "pw_android_common_backends",
        "pw_android_common_target_support",
    ],
    export_include_dirs: ["public"],
    header_libs: [
        "pw_assert",
        "pw_log",
    ],
    export_header_lib_headers: [
        "pw_assert",
        "pw_log",
    ],
    static_libs: [
        "pw_base64",
        "pw_containers",
        "pw_preprocessor",
        "pw_span",
        "pw_tokenizer",
        "pw_tokenizer_base64",
    ],
    export_static_lib_headers: [
        "pw_base64",
        "pw_containers",
        "pw_preprocessor",
        "pw_span",
        "pw_tokenizer",
        "pw_tokenizer_base64",
    ],
    srcs: [
        "metric.cc",
    ],
}

genrule {
    name: "pw_metric_raw_rpc_header",
    defaults: ["pw_rpc_generate_raw_rpc_header_with_prefix"],
    srcs: [
        "pw_metric_proto/metric_service.proto",
        "pw_metric_proto/metric_service.pwpb_options",
    ],
    out: ["pw_metric_proto/metric_service.raw_rpc.pb.h"],
}

genrule {
    name: "pw_metric_pwpb_proto_header",
    defaults: ["pw_rpc_generate_pwpb_proto_with_prefix"],
    srcs: [
        "pw_metric_proto/metric_service.proto",
        "pw_metric_proto/metric_service.pwpb_options",
    ],
    out: ["pw_metric_proto/metric_service.pwpb.h"],
}

genrule {
    name: "pw_metric_pwpb_rpc_header",
    defaults: ["pw_rpc_generate_pwpb_rpc_header_with_prefix"],
    srcs: [
        "pw_metric_proto/metric_service.proto",
        "pw_metric_proto/metric_service.pwpb_options",
    ],
    out: [
        "pw_metric_proto/metric_service.rpc.pwpb.h",
    ],
}

cc_library_headers {
    name: "pw_metric_service_pwpb",
    defaults: [
        "pw_android_common_target_support",
    ],
    generated_headers: [
        "pw_metric_pwpb_proto_header",
        "pw_metric_pwpb_rpc_header",
    ],
    export_generated_headers: [
        "pw_metric_pwpb_proto_header",
        "pw_metric_pwpb_rpc_header",
    ],
}

cc_library_headers {
    name: "pw_metric_service_raw",
    defaults: [
        "pw_android_common_target_support",
    ],
    generated_headers: [
        "pw_metric_raw_rpc_header",
    ],
    export_generated_headers: [
        "pw_metric_raw_rpc_header",
    ],
}
