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

# The WKTs have to be checked in to support the CocoaPods and Xcode builds. This
# generule and test ensure the source are current.
#
# Within the ":objectivec" target, the outputs of the genrule are then used to
# ensure they are always "current". This implementation is basically the same
# has how the WKTs are handled in src/google/protobuf/BUILD.bazel for the C++
# version. They share the potential downsides around layer checks and that
# someone could #include the header with the `wkt/` prefix on the name.

_WELL_KNOWN_TYPES = [
    "any",
    "api",
    "duration",
    "empty",
    "field_mask",
    "source_context",
    "struct",
    "timestamp",
    "type",
    "wrappers",
]

_OBJC_WKT_NAMES = [objc_proto_camel_case_name(x) for x in _WELL_KNOWN_TYPES]

_OBJC_EXTS = [
    ".pbobjc.h",
    ".pbobjc.m",
]

genrule(
    name = "gen_wkt_sources",
    srcs = ["//src/google/protobuf:well_known_type_protos"],
    outs = ["wkt/GPB" + wkt + ext for wkt in _OBJC_WKT_NAMES for ext in _OBJC_EXTS],
    cmd = " && ".join([
        "$(execpath //:protoc) --objc_out=$(RULEDIR)/wkt --proto_path=src $(SRCS)",
    ] + [
        "mv $(RULEDIR)/wkt/google/protobuf/" + wkt + ext + " $(RULEDIR)/wkt/GPB" + wkt + ext
        for wkt in _OBJC_WKT_NAMES
        for ext in _OBJC_EXTS
    ]),
    exec_tools = ["//:protoc"],
)

staleness_test(
    name = "well_known_types_staleness_test",
    outs = ["GPB" + wkt + ext for wkt in _OBJC_WKT_NAMES for ext in _OBJC_EXTS],
    generated_pattern = "wkt/%s",
    tags = ["manual"],
)

################################################################################
# Objective-C Runtime Library
################################################################################

objc_library(
    name = "objectivec",
    hdrs = [
        "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",
    ] + ["wkt/GPB" + wkt + ".pbobjc.h" for wkt in _OBJC_WKT_NAMES],
    copts = [
        "-Wno-vla",
    ],
    includes = [
        ".",
        "wkt",
    ],
    non_arc_srcs = [
        "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",
    ] + ["wkt/GPB" + wkt + ".pbobjc.m" for wkt in _OBJC_WKT_NAMES],
    target_compatible_with = select({
        "@platforms//os:macos": [],
        "@platforms//os:ios": [],
        "@platforms//os:tvos": [],
        "@platforms//os:watchos": [],
        "//conditions:default": ["@platforms//:incompatible"],
    }),
    visibility = ["//visibility:public"],
)

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

conformance_test(
    name = "conformance_test",
    failure_list = "//conformance:failure_list_objc.txt",
    target_compatible_with = ["@platforms//os:macos"],
    testee = "//conformance:conformance_objc",
)

# -------------------------------------------------------------------
# Current Version Check between Generator and Runtime Sources
sh_test(
    name = "check_version_stamps",
    size = "small",
    srcs = ["DevTools/check_version_stamps.sh"],
    data = [
        "GPBBootstrap.h",
        "//src/google/protobuf/compiler/objectivec:file.cc",
    ],
)

# -------------------------------------------------------------------
# Validation of pddm expansion.

py_binary(
    name = "pddm",
    srcs = ["DevTools/pddm.py"],
)

py_test(
    name = "pddm_tests",
    size = "small",
    srcs = [
        "DevTools/pddm.py",
        "DevTools/pddm_tests.py",
    ],
)

sh_test(
    name = "sources_pddm_expansion_test",
    size = "small",
    srcs = ["DevTools/sources_pddm_expansion_test.sh"],
    data = [":pddm"] + glob([
        "**/*.h",
        "**/*.m",
        "**/*.pddm",
    ]),
)

################################################################################
# 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/*.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__"],
)
