diff options
author | Muxi Yan <mxyan@google.com> | 2017-09-19 09:46:12 -0700 |
---|---|---|
committer | Muxi Yan <mxyan@google.com> | 2017-10-05 11:23:10 -0700 |
commit | 9635d4670c342663542081c4bb7f5e67536cd805 (patch) | |
tree | 8c3b53d721490183c9ea3ed70a7ae603ff8dc845 /src/compiler | |
parent | 05e0d2da35d822e0d3cad368ceb3848c6e035e4a (diff) |
Generate dependency header import in pbrpc.m
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/objective_c_plugin.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/compiler/objective_c_plugin.cc b/src/compiler/objective_c_plugin.cc index de878cf143..e751d0562e 100644 --- a/src/compiler/objective_c_plugin.cc +++ b/src/compiler/objective_c_plugin.cc @@ -108,6 +108,28 @@ class ObjectiveCGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { ".pbrpc.h\"\n\n" "#import <ProtoRPC/ProtoRPC.h>\n" "#import <RxLibrary/GRXWriter+Immediate.h>\n"; + for (int i = 0; i < file->dependency_count(); i++) { + ::grpc::string header = + grpc_objective_c_generator::MessageHeaderName(file->dependency(i)); + const grpc::protobuf::FileDescriptor *dependency = file->dependency(i); + if (IsProtobufLibraryBundledProtoFile(dependency)) { + ::grpc::string base_name = header; + grpc_generator::StripPrefix(&base_name, "google/protobuf/"); + // create the import code snippet + imports += + "#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS\n" + " #import <" + + ::grpc::string(ProtobufLibraryFrameworkName) + "/" + base_name + + ">\n" + "#else\n" + " #import \"" + + header + + "\"\n" + "#endif\n"; + } else { + imports += ::grpc::string("#import \"") + header + "\"\n"; + } + } ::grpc::string definitions; for (int i = 0; i < file->service_count(); i++) { |