From c72b1a312ce90453b5189e6f1e6648eaecebffa0 Mon Sep 17 00:00:00 2001 From: Per Grön Date: Thu, 11 May 2017 08:06:46 +0200 Subject: Don't hard code protobuf specific file extensions in cpp_generator.cc This file is shared with the Flatbuffers project as well, which does not use "pb" file extensions. --- src/compiler/config.h | 7 +++++++ src/compiler/cpp_generator.cc | 13 +++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/compiler/config.h b/src/compiler/config.h index ba44cd8a31..fbc3e8fd71 100644 --- a/src/compiler/config.h +++ b/src/compiler/config.h @@ -96,4 +96,11 @@ typedef GRPC_CUSTOM_STRINGOUTPUTSTREAM StringOutputStream; } // namespace protobuf } // namespace grpc +namespace grpc_cpp_generator { + +static const char * const kCppGeneratorMessageHeaderExt = ".pb.h"; +static const char * const kCppGeneratorServiceHeaderExt = ".grpc.pb.h"; + +} // namespace grpc_cpp_generator + #endif // SRC_COMPILER_CONFIG_H diff --git a/src/compiler/cpp_generator.cc b/src/compiler/cpp_generator.cc index a1a0258c68..42d4c498e6 100644 --- a/src/compiler/cpp_generator.cc +++ b/src/compiler/cpp_generator.cc @@ -40,9 +40,6 @@ namespace grpc_cpp_generator { namespace { -grpc::string message_header_ext() { return ".pb.h"; } -grpc::string service_header_ext() { return ".grpc.pb.h"; } - template grpc::string as_string(T x) { std::ostringstream out; @@ -113,7 +110,7 @@ grpc::string GetHeaderPrologue(grpc_generator::File *file, vars["filename"] = file->filename(); vars["filename_identifier"] = FilenameIdentifier(file->filename()); vars["filename_base"] = file->filename_without_ext(); - vars["message_header_ext"] = message_header_ext(); + vars["message_header_ext"] = kCppGeneratorMessageHeaderExt; printer->Print(vars, "// Generated by the gRPC C++ plugin.\n"); printer->Print(vars, @@ -1039,8 +1036,8 @@ grpc::string GetSourcePrologue(grpc_generator::File *file, vars["filename"] = file->filename(); vars["filename_base"] = file->filename_without_ext(); - vars["message_header_ext"] = message_header_ext(); - vars["service_header_ext"] = service_header_ext(); + vars["message_header_ext"] = kCppGeneratorMessageHeaderExt; + vars["service_header_ext"] = kCppGeneratorServiceHeaderExt; printer->Print(vars, "// Generated by the gRPC C++ plugin.\n"); printer->Print(vars, @@ -1425,8 +1422,8 @@ grpc::string GetMockPrologue(grpc_generator::File *file, vars["filename"] = file->filename(); vars["filename_base"] = file->filename_without_ext(); - vars["message_header_ext"] = message_header_ext(); - vars["service_header_ext"] = service_header_ext(); + vars["message_header_ext"] = kCppGeneratorMessageHeaderExt; + vars["service_header_ext"] = kCppGeneratorServiceHeaderExt; printer->Print(vars, "// Generated by the gRPC C++ plugin.\n"); printer->Print(vars, -- cgit v1.2.3 From b50cf568d71c7887953b49cc5678e51d45a707c9 Mon Sep 17 00:00:00 2001 From: Per Grön Date: Thu, 11 May 2017 08:16:48 +0200 Subject: Emit additional headers in generated .h file instead of .cc For Flatbuffers compatibility. From what I can tell, File::additional_headers is not used by gRPC itself or its default protobuf implementation; it was added for Flatbuffers support (it just returns "" for protobuf). In the Flatbuffer case, the generated header contains references to Flatbuffer gRPC glue code which is in a header in additional_headers. Prior to this patch, this meant that the generated .h file could not be included unless this glue file was included first. Because the protobuf implementation of additional_headers returns an empty string, I think this change should be safe to do and not have unintentional consequences. --- src/compiler/cpp_generator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/cpp_generator.cc b/src/compiler/cpp_generator.cc index 42d4c498e6..7a2c44fd46 100644 --- a/src/compiler/cpp_generator.cc +++ b/src/compiler/cpp_generator.cc @@ -125,6 +125,7 @@ grpc::string GetHeaderPrologue(grpc_generator::File *file, printer->Print(vars, "#define GRPC_$filename_identifier$__INCLUDED\n"); printer->Print(vars, "\n"); printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); + printer->Print(vars, file->additional_headers().c_str()); printer->Print(vars, "\n"); } return output; @@ -1046,7 +1047,6 @@ grpc::string GetSourcePrologue(grpc_generator::File *file, printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n"); - printer->Print(vars, file->additional_headers().c_str()); printer->Print(vars, "\n"); } return output; -- cgit v1.2.3 From 21458979f751b8ccc940aa54cecb2d04061fb7d9 Mon Sep 17 00:00:00 2001 From: Per Grön Date: Sun, 14 May 2017 11:25:43 +0200 Subject: Fix clang-format issue --- src/compiler/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/config.h b/src/compiler/config.h index fbc3e8fd71..fd1400cd24 100644 --- a/src/compiler/config.h +++ b/src/compiler/config.h @@ -98,8 +98,8 @@ typedef GRPC_CUSTOM_STRINGOUTPUTSTREAM StringOutputStream; namespace grpc_cpp_generator { -static const char * const kCppGeneratorMessageHeaderExt = ".pb.h"; -static const char * const kCppGeneratorServiceHeaderExt = ".grpc.pb.h"; +static const char* const kCppGeneratorMessageHeaderExt = ".pb.h"; +static const char* const kCppGeneratorServiceHeaderExt = ".grpc.pb.h"; } // namespace grpc_cpp_generator -- cgit v1.2.3