diff options
author | Muxi Yan <mxyan@google.com> | 2017-09-19 09:46:12 -0700 |
---|---|---|
committer | Muxi Yan <mxyan@google.com> | 2017-09-19 09:46:12 -0700 |
commit | 1e32fea495d093a323cceae9746f0c8637a42b73 (patch) | |
tree | a640ec76ce5e7570e8ad5ef3b95c62f42836f15c /src/compiler | |
parent | 75271d741e61ec82737d4374203f2b9a6f894e03 (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++) { |