diff --git a/Protobuf.podspec b/Protobuf.podspec index 75a5e31f..2523076a 100644 --- a/Protobuf.podspec +++ b/Protobuf.podspec @@ -18,18 +18,14 @@ Pod::Spec.new do |s| s.source_files = 'objectivec/*.{h,m}', 'objectivec/google/protobuf/Any.pbobjc.{h,m}', 'objectivec/google/protobuf/Api.pbobjc.{h,m}', - 'objectivec/google/protobuf/Duration.pbobjc.h', + 'objectivec/google/protobuf/Duration.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/Timestamp.pbobjc.{h,m}', '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' diff --git a/objectivec/GPBDescriptor.m b/objectivec/GPBDescriptor.m index 0212fb0d..dccb9bc8 100644 --- a/objectivec/GPBDescriptor.m +++ b/objectivec/GPBDescriptor.m @@ -756,8 +756,7 @@ uint32_t GPBFieldAlternateTag(GPBFieldDescriptor *self) { return NO; } -- (BOOL)getValue:(int32_t *)outValue forEnumTextFormatName:(NSString *)textFormatName; -{ +- (BOOL)getValue:(int32_t *)outValue forEnumTextFormatName:(NSString *)textFormatName { if (nameOffsets_ == NULL) [self calcValueNameOffsets]; for (uint32_t i = 0; i < valueCount_; ++i) { diff --git a/objectivec/GPBProtocolBuffers.m b/objectivec/GPBProtocolBuffers.m index 73939391..d04c8be1 100644 --- a/objectivec/GPBProtocolBuffers.m +++ b/objectivec/GPBProtocolBuffers.m @@ -54,15 +54,13 @@ #import "GPBWellKnownTypes.m" #import "GPBWireFormat.m" -// Duration and Timestamp are #imported into GPBWellKnownTypes.m to the -// Objective C categories added will always be linked in with the classes. #import "google/protobuf/Any.pbobjc.m" #import "google/protobuf/Api.pbobjc.m" -// #import "google/protobuf/Duration.pbobjc.m" +#import "google/protobuf/Duration.pbobjc.m" #import "google/protobuf/Empty.pbobjc.m" #import "google/protobuf/FieldMask.pbobjc.m" #import "google/protobuf/SourceContext.pbobjc.m" #import "google/protobuf/Struct.pbobjc.m" -// #import "google/protobuf/Timestamp.pbobjc.m" +#import "google/protobuf/Timestamp.pbobjc.m" #import "google/protobuf/Type.pbobjc.m" #import "google/protobuf/Wrappers.pbobjc.m" diff --git a/objectivec/GPBWellKnownTypes.m b/objectivec/GPBWellKnownTypes.m index fe02f5de..5cdd62d5 100644 --- a/objectivec/GPBWellKnownTypes.m +++ b/objectivec/GPBWellKnownTypes.m @@ -32,8 +32,6 @@ // the static library. If these were compiled separately, the category methods // below would be stripped by the linker. -#import "google/protobuf/Timestamp.pbobjc.m" -#import "google/protobuf/Duration.pbobjc.m" #import "GPBWellKnownTypes.h" static NSTimeInterval TimeIntervalSince1970FromSecondsAndNanos(int64_t seconds, diff --git a/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj index 41ba7676..32067910 100644 --- a/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj +++ b/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj @@ -54,6 +54,8 @@ F4487C831AAF6AB300531423 /* GPBMessageTests+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = F4487C821AAF6AB300531423 /* GPBMessageTests+Merge.m */; }; F45C69CC16DFD08D0081955B /* GPBExtensionInternals.m in Sources */ = {isa = PBXBuildFile; fileRef = F45C69CB16DFD08D0081955B /* GPBExtensionInternals.m */; }; F45E57C71AE6DC6A000B7D99 /* text_format_map_unittest_data.txt in Resources */ = {isa = PBXBuildFile; fileRef = F45E57C61AE6DC6A000B7D99 /* text_format_map_unittest_data.txt */; }; + F47476E51D21A524007C7B1A /* Duration.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B4248D41A92826400BC1EC6 /* Duration.pbobjc.m */; }; + F47476E61D21A524007C7B1A /* Timestamp.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B4248D61A92826400BC1EC6 /* Timestamp.pbobjc.m */; }; F4B51B1E1BBC610700744318 /* GPBObjectiveCPlusPlusTest.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4B51B1D1BBC610700744318 /* GPBObjectiveCPlusPlusTest.mm */; }; F4E675971B21D0000054530B /* Any.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E675871B21D0000054530B /* Any.pbobjc.m */; }; F4E675991B21D0000054530B /* Api.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E675891B21D0000054530B /* Api.pbobjc.m */; }; @@ -625,6 +627,7 @@ F4E6759D1B21D0000054530B /* FieldMask.pbobjc.m in Sources */, 7461B54C0F94FB4E00A0C422 /* GPBUnknownField.m in Sources */, 7461B5530F94FB4E00A0C422 /* GPBMessage.m in Sources */, + F47476E51D21A524007C7B1A /* Duration.pbobjc.m in Sources */, 7461B5610F94FB4E00A0C422 /* GPBUnknownFieldSet.m in Sources */, 7461B5630F94FB4E00A0C422 /* GPBUtilities.m in Sources */, 7461B5640F94FB4E00A0C422 /* GPBWireFormat.m in Sources */, @@ -639,6 +642,7 @@ F4E675A31B21D0000054530B /* Type.pbobjc.m in Sources */, F4E675A11B21D0000054530B /* Struct.pbobjc.m in Sources */, F4E675A51B21D0000054530B /* Wrappers.pbobjc.m in Sources */, + F47476E61D21A524007C7B1A /* Timestamp.pbobjc.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -727,6 +731,7 @@ ); INFOPLIST_FILE = "Tests/UnitTests-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + OTHER_LDFLAGS = "-ObjC"; PRODUCT_BUNDLE_IDENTIFIER = "com.yourcompany.${PRODUCT_NAME:identifier}"; PRODUCT_NAME = UnitTests; SWIFT_OBJC_BRIDGING_HEADER = "Tests/UnitTests-Bridging-Header.h"; @@ -751,6 +756,7 @@ ); INFOPLIST_FILE = "Tests/UnitTests-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + OTHER_LDFLAGS = "-ObjC"; PRODUCT_BUNDLE_IDENTIFIER = "com.yourcompany.${PRODUCT_NAME:identifier}"; PRODUCT_NAME = UnitTests; SWIFT_OBJC_BRIDGING_HEADER = "Tests/UnitTests-Bridging-Header.h"; diff --git a/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj index 7f95a754..9f688f8d 100644 --- a/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj +++ b/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj @@ -62,6 +62,8 @@ F4487C851AAF6AC500531423 /* GPBMessageTests+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = F4487C841AAF6AC500531423 /* GPBMessageTests+Merge.m */; }; F45C69CC16DFD08D0081955B /* GPBExtensionInternals.m in Sources */ = {isa = PBXBuildFile; fileRef = F45C69CB16DFD08D0081955B /* GPBExtensionInternals.m */; }; F45E57C91AE6DC98000B7D99 /* text_format_map_unittest_data.txt in Resources */ = {isa = PBXBuildFile; fileRef = F45E57C81AE6DC98000B7D99 /* text_format_map_unittest_data.txt */; }; + F47476E91D21A537007C7B1A /* Duration.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B4248DE1A929C7D00BC1EC6 /* Duration.pbobjc.m */; }; + F47476EA1D21A537007C7B1A /* Timestamp.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B4248E01A929C7D00BC1EC6 /* Timestamp.pbobjc.m */; }; F4B51B1C1BBC5C7100744318 /* GPBObjectiveCPlusPlusTest.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4B51B1B1BBC5C7100744318 /* GPBObjectiveCPlusPlusTest.mm */; }; F4E675D01B21D1620054530B /* Any.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E675B71B21D1440054530B /* Any.pbobjc.m */; }; F4E675D11B21D1620054530B /* Api.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E675B91B21D1440054530B /* Api.pbobjc.m */; }; @@ -713,6 +715,7 @@ F4E675D31B21D1620054530B /* FieldMask.pbobjc.m in Sources */, 7461B54C0F94FB4E00A0C422 /* GPBUnknownField.m in Sources */, 7461B5530F94FB4E00A0C422 /* GPBMessage.m in Sources */, + F47476E91D21A537007C7B1A /* Duration.pbobjc.m in Sources */, 7461B5610F94FB4E00A0C422 /* GPBUnknownFieldSet.m in Sources */, 7461B5630F94FB4E00A0C422 /* GPBUtilities.m in Sources */, 7461B5640F94FB4E00A0C422 /* GPBWireFormat.m in Sources */, @@ -727,6 +730,7 @@ F4E675D61B21D1620054530B /* Type.pbobjc.m in Sources */, F4E675D51B21D1620054530B /* Struct.pbobjc.m in Sources */, F4E675D71B21D1620054530B /* Wrappers.pbobjc.m in Sources */, + F47476EA1D21A537007C7B1A /* Timestamp.pbobjc.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -878,6 +882,7 @@ "$(inherited)", "\"$(DEVELOPER_DIR)/usr/lib\"", ); + OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = UnitTests; SWIFT_OBJC_BRIDGING_HEADER = "Tests/UnitTests-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -912,6 +917,7 @@ "$(inherited)", "\"$(DEVELOPER_DIR)/usr/lib\"", ); + OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = UnitTests; SWIFT_OBJC_BRIDGING_HEADER = "Tests/UnitTests-Bridging-Header.h"; TARGETED_DEVICE_FAMILY = "1,2";