load(
    "//bazel:generate_objc.bzl",
    "generate_objc",
    "generate_objc_hdrs",
    "generate_objc_srcs",
    "generate_objc_non_arc_srcs"
)
load("//bazel:protobuf.bzl", "well_known_proto_libs")

def objc_grpc_library(name, deps, srcs = [], use_well_known_protos = False, **kwargs):
    """Generates messages and/or service stubs for given proto_library and all transitively dependent proto files

    Args:
        name: name of target
        deps: a list of proto_library targets that needs to be compiled
        srcs: a list of labels to proto files with service stubs to be generated,
            labels specified must include service stubs; otherwise Bazel will complain about srcs being empty
        use_well_known_protos: whether to use the well known protos defined in
            @com_google_protobuf//src/google/protobuf, default to false
        **kwargs: other arguments
    """
    objc_grpc_library_name = "_" + name + "_objc_grpc_library"

    generate_objc(
        name = objc_grpc_library_name,
        srcs = srcs,
        deps = deps,
        use_well_known_protos = use_well_known_protos,
        **kwargs
    )

    generate_objc_hdrs(
        name = objc_grpc_library_name + "_hdrs",
        src = ":" + objc_grpc_library_name,
    )

    generate_objc_non_arc_srcs(
        name = objc_grpc_library_name + "_non_arc_srcs",
        src = ":" + objc_grpc_library_name,
    )

    arc_srcs = None
    if len(srcs) > 0:
        generate_objc_srcs(
            name = objc_grpc_library_name + "_srcs",
            src = ":" + objc_grpc_library_name,
        )
        arc_srcs = [":" + objc_grpc_library_name + "_srcs"]

    native.objc_library(
        name = name,
        hdrs = [":" + objc_grpc_library_name + "_hdrs"],
        non_arc_srcs = [":" + objc_grpc_library_name + "_non_arc_srcs"],
        srcs = arc_srcs,
        defines = [
            "GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=0",
            "GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO=0",
        ],
        includes = [
            "_generated_protos",
            "src/objective-c",
        ],
        deps = [
            "@com_github_grpc_grpc//src/objective-c:proto_objc_rpc",
            "@com_google_protobuf//:protobuf_objc",
        ],
    )

