Merge pull request #554 from jcanizales/proto-objc-bazel

Add Bazel target for the Objective-C protobuf runtime
pull/573/head
Paul Yang 10 years ago
commit ab2094de11
  1. 49
      BUILD
  2. 24
      Protobuf.podspec
  3. 12
      objectivec/GPBProtocolBuffers.h

49
BUILD

@ -2,6 +2,10 @@
licenses(["notice"]) licenses(["notice"])
################################################################################
# Protobuf Runtime Library
################################################################################
COPTS = [ COPTS = [
"-DHAVE_PTHREAD", "-DHAVE_PTHREAD",
"-Wall", "-Wall",
@ -109,6 +113,34 @@ cc_library(
deps = [":protobuf_lite"], deps = [":protobuf_lite"],
) )
objc_library(
name = "protobuf_objc",
hdrs = ["objectivec/GPBProtocolBuffers.h"],
includes = ["objectivec"],
non_arc_srcs = ["objectivec/GPBProtocolBuffers.m"],
visibility = ["//visibility:public"],
)
WELL_KNOWN_PROTOS = [
# AUTOGEN(well_known_protos)
"google/protobuf/any.proto",
"google/protobuf/api.proto",
"google/protobuf/compiler/plugin.proto",
"google/protobuf/descriptor.proto",
"google/protobuf/duration.proto",
"google/protobuf/empty.proto",
"google/protobuf/field_mask.proto",
"google/protobuf/source_context.proto",
"google/protobuf/struct.proto",
"google/protobuf/timestamp.proto",
"google/protobuf/type.proto",
"google/protobuf/wrappers.proto",
]
################################################################################
# Protocol Buffers Compiler
################################################################################
cc_library( cc_library(
name = "protoc_lib", name = "protoc_lib",
srcs = [ srcs = [
@ -216,22 +248,6 @@ cc_binary(
deps = [":protoc_lib"], deps = [":protoc_lib"],
) )
WELL_KNOWN_PROTOS = [
# AUTOGEN(well_known_protos)
"google/protobuf/any.proto",
"google/protobuf/api.proto",
"google/protobuf/compiler/plugin.proto",
"google/protobuf/descriptor.proto",
"google/protobuf/duration.proto",
"google/protobuf/empty.proto",
"google/protobuf/field_mask.proto",
"google/protobuf/source_context.proto",
"google/protobuf/struct.proto",
"google/protobuf/timestamp.proto",
"google/protobuf/type.proto",
"google/protobuf/wrappers.proto",
]
################################################################################ ################################################################################
# Tests # Tests
################################################################################ ################################################################################
@ -403,3 +419,4 @@ cc_test(
"//external:gtest_main", "//external:gtest_main",
], ],
) )

@ -11,25 +11,11 @@ Pod::Spec.new do |s|
s.license = 'New BSD' s.license = 'New BSD'
s.authors = { 'The Protocol Buffers contributors' => 'protobuf@googlegroups.com' } s.authors = { 'The Protocol Buffers contributors' => 'protobuf@googlegroups.com' }
s.source_files = 'objectivec/*.{h,m}', s.source_files = 'objectivec/GPBProtocolBuffers.{h,m}'
'objectivec/google/protobuf/Any.pbobjc.{h,m}', # GPBProtocolBuffers.{h,m} are umbrella files. We need Cocoapods to preserve the files imported by
'objectivec/google/protobuf/Api.pbobjc.{h,m}', # them.
'objectivec/google/protobuf/Descriptor.pbobjc.{h,m}', s.preserve_paths = 'objectivec/*.{h,m}',
'objectivec/google/protobuf/Duration.pbobjc.h', 'objectivec/google/protobuf/*.pbobjc.{h,m}'
'objectivec/google/protobuf/Empty.pbobjc.{h,m}',
'objectivec/google/protobuf/FieldMask.pbobjc.{h,m}',
'objectivec/google/protobuf/SourceContext.pbobjc.{h,m}',
'objectivec/google/protobuf/Struct.pbobjc.{h,m}',
'objectivec/google/protobuf/Timestamp.pbobjc.h',
'objectivec/google/protobuf/Type.pbobjc.{h,m}'
'objectivec/google/protobuf/Wrappers.pbobjc.{h,m}'
# Timestamp.pbobjc.m and Duration.pbobjc.m are #imported by GPBWellKnownTypes.m. So we can't
# compile them (duplicate symbols), but we need them available for the importing:
s.preserve_paths = 'objectivec/google/protobuf/Duration.pbobjc.m',
'objectivec/google/protobuf/Timestamp.pbobjc.m'
# The following would cause duplicate symbol definitions. GPBProtocolBuffers is expected to be
# left out, as it's an umbrella implementation file.
s.exclude_files = 'objectivec/GPBProtocolBuffers.m'
s.header_mappings_dir = 'objectivec' s.header_mappings_dir = 'objectivec'
s.ios.deployment_target = '6.0' s.ios.deployment_target = '6.0'

@ -42,3 +42,15 @@
#import "GPBUnknownFieldSet.h" #import "GPBUnknownFieldSet.h"
#import "GPBUtilities.h" #import "GPBUtilities.h"
#import "GPBWireFormat.h" #import "GPBWireFormat.h"
// Well-known proto types
#import "google/protobuf/Any.pbobjc.h"
#import "google/protobuf/Api.pbobjc.h"
#import "google/protobuf/Duration.pbobjc.h"
#import "google/protobuf/Empty.pbobjc.h"
#import "google/protobuf/FieldMask.pbobjc.h"
#import "google/protobuf/SourceContext.pbobjc.h"
#import "google/protobuf/Struct.pbobjc.h"
#import "google/protobuf/Timestamp.pbobjc.h"
#import "google/protobuf/Type.pbobjc.h"
#import "google/protobuf/Wrappers.pbobjc.h"

Loading…
Cancel
Save