aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Canizales <jcanizales@google.com>2015-06-28 15:23:02 -0700
committerJorge Canizales <jcanizales@google.com>2015-07-06 11:17:39 -0700
commitd5d7bb3bfbe3702617f604834d61d3357c8c87fb (patch)
treea7cd08f716f3eaf6b470a0737d422eb3965dcf7b
parentd40a0db202433ba002a3e104165d4414e8929432 (diff)
downloadprotobuf-d5d7bb3bfbe3702617f604834d61d3357c8c87fb.tar.gz
protobuf-d5d7bb3bfbe3702617f604834d61d3357c8c87fb.tar.bz2
protobuf-d5d7bb3bfbe3702617f604834d61d3357c8c87fb.zip
Add Bazel target for protobuf ObjC runtime
Also add WKT headers to the umbrella file, and simplify Podspec with it. Plus some layout improvements to the BUILD file.
-rw-r--r--BUILD49
-rw-r--r--Protobuf.podspec24
-rw-r--r--objectivec/GPBProtocolBuffers.h12
3 files changed, 50 insertions, 35 deletions
diff --git a/BUILD b/BUILD
index f5077060..5177e43d 100644
--- a/BUILD
+++ b/BUILD
@@ -2,6 +2,10 @@
licenses(["notice"])
+################################################################################
+# Protobuf Runtime Library
+################################################################################
+
COPTS = [
"-DHAVE_PTHREAD",
"-Wall",
@@ -109,6 +113,34 @@ cc_library(
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(
name = "protoc_lib",
srcs = [
@@ -216,22 +248,6 @@ cc_binary(
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
################################################################################
@@ -403,3 +419,4 @@ cc_test(
"//external:gtest_main",
],
)
+
diff --git a/Protobuf.podspec b/Protobuf.podspec
index b6b831c2..6aa89902 100644
--- a/Protobuf.podspec
+++ b/Protobuf.podspec
@@ -11,25 +11,11 @@ Pod::Spec.new do |s|
s.license = 'New BSD'
s.authors = { 'The Protocol Buffers contributors' => 'protobuf@googlegroups.com' }
- s.source_files = 'objectivec/*.{h,m}',
- 'objectivec/google/protobuf/Any.pbobjc.{h,m}',
- 'objectivec/google/protobuf/Api.pbobjc.{h,m}',
- 'objectivec/google/protobuf/Descriptor.pbobjc.{h,m}',
- 'objectivec/google/protobuf/Duration.pbobjc.h',
- '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.source_files = 'objectivec/GPBProtocolBuffers.{h,m}'
+ # GPBProtocolBuffers.{h,m} are umbrella files. We need Cocoapods to preserve the files imported by
+ # them.
+ s.preserve_paths = 'objectivec/*.{h,m}',
+ 'objectivec/google/protobuf/*.pbobjc.{h,m}'
s.header_mappings_dir = 'objectivec'
s.ios.deployment_target = '6.0'
diff --git a/objectivec/GPBProtocolBuffers.h b/objectivec/GPBProtocolBuffers.h
index a66f295e..0c85259e 100644
--- a/objectivec/GPBProtocolBuffers.h
+++ b/objectivec/GPBProtocolBuffers.h
@@ -42,3 +42,15 @@
#import "GPBUnknownFieldSet.h"
#import "GPBUtilities.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"