| 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", |
| ], |
| 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", |
| testee = "//conformance:conformance_objc", |
| target_compatible_with = ["@platforms//os:macos"], |
| ) |
| |
| # ------------------------------------------------------------------- |
| # 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", |
| ], |
| ) |
| |
| ################################################################################ |
| # 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__"], |
| ) |