load("@rules_cc//cc:defs.bzl", "objc_library")

objc_library(
    name = "objectivec",
    hdrs = [
        "GPBAny.pbobjc.h",
        "GPBApi.pbobjc.h",
        "GPBDuration.pbobjc.h",
        "GPBEmpty.pbobjc.h",
        "GPBFieldMask.pbobjc.h",
        "GPBSourceContext.pbobjc.h",
        "GPBStruct.pbobjc.h",
        "GPBTimestamp.pbobjc.h",
        "GPBType.pbobjc.h",
        "GPBWrappers.pbobjc.h",
        "GPBArray.h",
        "GPBBootstrap.h",
        "GPBCodedInputStream.h",
        "GPBCodedOutputStream.h",
        "GPBDescriptor.h",
        "GPBDictionary.h",
        "GPBExtensionInternals.h",
        "GPBExtensionRegistry.h",
        "GPBMessage.h",
        "GPBProtocolBuffers.h",
        "GPBProtocolBuffers_RuntimeSupport.h",
        "GPBRootObject.h",
        "GPBRuntimeTypes.h",
        "GPBUnknownField.h",
        "GPBUnknownFieldSet.h",
        "GPBUtilities.h",
        "GPBWellKnownTypes.h",
        "GPBWireFormat.h",
        "google/protobuf/Any.pbobjc.h",
        "google/protobuf/Api.pbobjc.h",
        "google/protobuf/Duration.pbobjc.h",
        "google/protobuf/Empty.pbobjc.h",
        "google/protobuf/FieldMask.pbobjc.h",
        "google/protobuf/SourceContext.pbobjc.h",
        "google/protobuf/Struct.pbobjc.h",
        "google/protobuf/Timestamp.pbobjc.h",
        "google/protobuf/Type.pbobjc.h",
        "google/protobuf/Wrappers.pbobjc.h",
        # Package private headers, but exposed because the generated sources
        # need to use them.
        "GPBArray_PackagePrivate.h",
        "GPBCodedInputStream_PackagePrivate.h",
        "GPBCodedOutputStream_PackagePrivate.h",
        "GPBDescriptor_PackagePrivate.h",
        "GPBDictionary_PackagePrivate.h",
        "GPBMessage_PackagePrivate.h",
        "GPBRootObject_PackagePrivate.h",
        "GPBUnknownFieldSet_PackagePrivate.h",
        "GPBUnknownField_PackagePrivate.h",
        "GPBUtilities_PackagePrivate.h",
    ],
    copts = [
        "-Wno-vla",
    ],
    includes = [
        ".",
    ],
    non_arc_srcs = [
        "GPBAny.pbobjc.m",
        "GPBApi.pbobjc.m",
        "GPBDuration.pbobjc.m",
        "GPBEmpty.pbobjc.m",
        "GPBFieldMask.pbobjc.m",
        "GPBSourceContext.pbobjc.m",
        "GPBStruct.pbobjc.m",
        "GPBTimestamp.pbobjc.m",
        "GPBType.pbobjc.m",
        "GPBWrappers.pbobjc.m",
        "GPBArray.m",
        "GPBCodedInputStream.m",
        "GPBCodedOutputStream.m",
        "GPBDescriptor.m",
        "GPBDictionary.m",
        "GPBExtensionInternals.m",
        "GPBExtensionRegistry.m",
        "GPBMessage.m",
        "GPBRootObject.m",
        "GPBUnknownField.m",
        "GPBUnknownFieldSet.m",
        "GPBUtilities.m",
        "GPBWellKnownTypes.m",
        "GPBWireFormat.m",
    ],
    visibility = ["//visibility:public"],
)