Index: third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc |
diff --git a/third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc b/third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc |
index 228c66f0b4b77162fa73d25570c0b95b35e81cb3..ed4fc6a3a25c23d9adefe78364cf23e62a80ff73 100644 |
--- a/third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc |
+++ b/third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc |
@@ -45,22 +45,23 @@ namespace protobuf { |
// This is also found in GPBBootstrap.h, and needs to be kept in sync. It |
// is the version check done to ensure generated code works with the current |
// runtime being used. |
-const int32 GOOGLE_PROTOBUF_OBJC_GEN_VERSION = 30000; |
+const int32 GOOGLE_PROTOBUF_OBJC_GEN_VERSION = 30001; |
namespace compiler { |
namespace objectivec { |
-FileGenerator::FileGenerator(const FileDescriptor *file) |
+FileGenerator::FileGenerator(const FileDescriptor *file, const Options& options) |
: file_(file), |
root_class_name_(FileClassName(file)), |
- is_public_dep_(false) { |
+ is_public_dep_(false), |
+ options_(options) { |
for (int i = 0; i < file_->enum_type_count(); i++) { |
EnumGenerator *generator = new EnumGenerator(file_->enum_type(i)); |
enum_generators_.push_back(generator); |
} |
for (int i = 0; i < file_->message_type_count(); i++) { |
MessageGenerator *generator = |
- new MessageGenerator(root_class_name_, file_->message_type(i)); |
+ new MessageGenerator(root_class_name_, file_->message_type(i), options_); |
message_generators_.push_back(generator); |
} |
for (int i = 0; i < file_->extension_count(); i++) { |
@@ -114,6 +115,9 @@ void FileGenerator::GenerateHeader(io::Printer *printer) { |
printer->Print( |
"// @@protoc_insertion_point(imports)\n" |
"\n" |
+ "#pragma clang diagnostic push\n" |
+ "#pragma clang diagnostic ignored \"-Wdeprecated-declarations\"\n" |
+ "\n" |
"CF_EXTERN_C_BEGIN\n" |
"\n"); |
@@ -150,13 +154,15 @@ void FileGenerator::GenerateHeader(io::Printer *printer) { |
printer->Print( |
"#pragma mark - $root_class_name$\n" |
"\n" |
+ "/// Exposes the extension registry for this file.\n" |
+ "///\n" |
+ "/// The base class provides:\n" |
+ "/// @code\n" |
+ "/// + (GPBExtensionRegistry *)extensionRegistry;\n" |
+ "/// @endcode\n" |
+ "/// which is a @c GPBExtensionRegistry that includes all the extensions defined by\n" |
+ "/// this file and all files that it depends on.\n" |
"@interface $root_class_name$ : GPBRootObject\n" |
- "\n" |
- "// The base class provides:\n" |
- "// + (GPBExtensionRegistry *)extensionRegistry;\n" |
- "// which is an GPBExtensionRegistry that includes all the extensions defined by\n" |
- "// this file and all files that it depends on.\n" |
- "\n" |
"@end\n" |
"\n", |
"root_class_name", root_class_name_); |
@@ -186,6 +192,8 @@ void FileGenerator::GenerateHeader(io::Printer *printer) { |
"\n" |
"CF_EXTERN_C_END\n" |
"\n" |
+ "#pragma clang diagnostic pop\n" |
+ "\n" |
"// @@protoc_insertion_point(global_scope)\n"); |
} |
@@ -213,6 +221,9 @@ void FileGenerator::GenerateSource(io::Printer *printer) { |
} |
printer->Print( |
"// @@protoc_insertion_point(imports)\n" |
+ "\n" |
+ "#pragma clang diagnostic push\n" |
+ "#pragma clang diagnostic ignored \"-Wdeprecated-declarations\"\n" |
"\n"); |
printer->Print( |
@@ -340,6 +351,8 @@ void FileGenerator::GenerateSource(io::Printer *printer) { |
printer->Print( |
"\n" |
+ "#pragma clang diagnostic pop\n" |
+ "\n" |
"// @@protoc_insertion_point(global_scope)\n"); |
} |
@@ -352,7 +365,8 @@ const vector<FileGenerator *> &FileGenerator::DependencyGenerators() { |
public_import_names.insert(file_->public_dependency(i)->name()); |
} |
for (int i = 0; i < file_->dependency_count(); i++) { |
- FileGenerator *generator = new FileGenerator(file_->dependency(i)); |
+ FileGenerator *generator = |
+ new FileGenerator(file_->dependency(i), options_); |
const string& name = file_->dependency(i)->name(); |
bool public_import = (public_import_names.count(name) != 0); |
generator->SetIsPublicDependency(public_import); |