load("@rules_cc//cc:defs.bzl", "objc_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("//conformance:defs.bzl", "conformance_test")

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",
        "GPBArray.m",
        "GPBCodedInputStream.m",
        "GPBCodedOutputStream.m",
        "GPBDescriptor.m",
        "GPBDictionary.m",
        "GPBDuration.pbobjc.m",
        "GPBEmpty.pbobjc.m",
        "GPBExtensionInternals.m",
        "GPBExtensionRegistry.m",
        "GPBFieldMask.pbobjc.m",
        "GPBMessage.m",
        "GPBRootObject.m",
        "GPBSourceContext.pbobjc.m",
        "GPBStruct.pbobjc.m",
        "GPBTimestamp.pbobjc.m",
        "GPBType.pbobjc.m",
        "GPBUnknownField.m",
        "GPBUnknownFieldSet.m",
        "GPBUtilities.m",
        "GPBWellKnownTypes.m",
        "GPBWireFormat.m",
        "GPBWrappers.pbobjc.m",
    ],
    visibility = ["//visibility:public"],
)

################################################################################
# Tests
################################################################################

conformance_test(
    name = "conformance_test",
    failure_list = "//conformance:failure_list_objc.txt",
    testee = "//conformance:conformance_objc",
)

################################################################################
# Distribution files
################################################################################

pkg_files(
    name = "dist_files",
    srcs = glob([
        "*.h",
        "*.m",
        "**/*.h",
        "**/*.m",
        "**/*.mm",
        "**/*.swift",
        "DevTools/*.sh",
        "DevTools/*.py",
        "ProtocolBuffers_iOS.xcodeproj/**/*",
        "ProtocolBuffers_OSX.xcodeproj/**/*",
        "ProtocolBuffers_tvOS.xcodeproj/**/*",
        "Tests/CocoaPods/**/*",
        "Tests/*.pddm",
        "Tests/*.txt",
        "Tests/*.plist",
        "Tests/*.proto",
    ]) + [
        ".clang-format",
        "BUILD.bazel",
        "README.md",
        "Tests/golden_message",
        "Tests/golden_packed_fields_message",
        "generate_well_known_types.sh",
    ],
    strip_prefix = strip_prefix.from_root(""),
    visibility = ["//pkg:__pkg__"],
)
