// 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_static {
    name: "pw_i2c",
    defaults: [
        "pw_android_common_backends",
        "pw_android_common_target_support",
    ],
    export_include_dirs: [
        "public",
    ],
    header_libs: [
        "pw_assert",
        "pw_sync",
    ],
    export_header_lib_headers: [
        "pw_assert",
        "pw_sync",
    ],
    static_libs: [
        "pw_bytes",
        "pw_span",
        "pw_status",
        "pw_toolchain",
    ],
    export_static_lib_headers: [
        "pw_bytes",
        "pw_span",
        "pw_status",
        "pw_toolchain",
    ],
    srcs: [
        "address.cc",
        "initiator.cc",
    ],
}

genrule {
    name: "pw_i2c_proto_with_prefix",
    defaults: ["pw_rpc_add_prefix_to_proto"],
    srcs: [
        "i2c.proto",
        "i2c.pwpb_options",
    ],
    out: [
        "pw_i2c/i2c.proto",
        "pw_i2c/i2c.pwpb_options",
    ],
}

genrule {
    name: "pw_i2c_pwpb_rpc_header",
    defaults: ["pw_rpc_generate_pwpb_rpc_header_with_prefix"],
    srcs: [":pw_i2c_proto_with_prefix"],
    out: ["pw_i2c/i2c.rpc.pwpb.h"],
}

genrule {
    name: "pw_i2c_pwpb_proto_header",
    defaults: ["pw_rpc_generate_pwpb_proto_with_prefix"],
    srcs: [":pw_i2c_proto_with_prefix"],
    out: ["pw_i2c/i2c.pwpb.h"],
}

cc_library_headers {
    name: "pw_i2c_service_pwpb",
    defaults: [
        "pw_android_common_target_support",
    ],
    generated_headers: [
        "pw_i2c_pwpb_proto_header",
        "pw_i2c_pwpb_rpc_header",
    ],
    export_generated_headers: [
        "pw_i2c_pwpb_proto_header",
        "pw_i2c_pwpb_rpc_header",
    ],
}
