From 7be9f69f77730b36e79f7ce9466636d2e775afcd Mon Sep 17 00:00:00 2001 From: dsavvinov Date: Tue, 9 Aug 2016 15:58:03 +0300 Subject: [PATCH] Protobuf: added support of another languages in generated protoc executable --- .../protobuf/compiler/kotlin/src/main.cc | 55 +++++++++++++++++-- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/main.cc b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/main.cc index 9282634da38..54686c7f2c9 100644 --- a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/main.cc +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/main.cc @@ -12,15 +12,60 @@ int main(int argc, const char* const * argv) { google::protobuf::compiler::CommandLineInterface cli; + cli.AllowPlugins("protoc-"); - // Support generation of C++ source and headers. + // Proto2 C++ google::protobuf::compiler::cpp::CppGenerator cpp_generator; - cli.RegisterGenerator("--cpp_out", &cpp_generator, - "Generate C++ source and header."); + cli.RegisterGenerator("--cpp_out", "--cpp_opt", &cpp_generator, + "Generate C++ header and source."); + // Proto2 Java + google::protobuf::compiler::java::JavaGenerator java_generator; + cli.RegisterGenerator("--java_out", &java_generator, + "Generate Java source file."); + + + // Proto2 Python + google::protobuf::compiler::python::Generator py_generator; + cli.RegisterGenerator("--python_out", &py_generator, + "Generate Python source file."); + + // Java Nano + google::protobuf::compiler::javanano::JavaNanoGenerator javanano_generator; + cli.RegisterGenerator("--javanano_out", &javanano_generator, + "Generate Java Nano source file."); + + // TODO(teboring): Add it back when php implementation is ready + // PHP + // google::protobuf::compiler::php::Generator php_generator; + // cli.RegisterGenerator("--php_out", &php_generator, + // "Generate PHP source file."); + + // Ruby + google::protobuf::compiler::ruby::Generator rb_generator; + cli.RegisterGenerator("--ruby_out", &rb_generator, + "Generate Ruby source file."); + + // CSharp + google::protobuf::compiler::csharp::Generator csharp_generator; + cli.RegisterGenerator("--csharp_out", "--csharp_opt", &csharp_generator, + "Generate C# source file."); + + // Objective C + google::protobuf::compiler::objectivec::ObjectiveCGenerator objc_generator; + cli.RegisterGenerator("--objc_out", "--objc_opt", &objc_generator, + "Generate Objective C header and source."); + + // JavaScript + google::protobuf::compiler::js::Generator js_generator; + cli.RegisterGenerator("--js_out", &js_generator, + "Generate JavaScript source."); + + // Kotlin google::protobuf::compiler::kotlin::FileGenerator kotlinGenerator; cli.RegisterGenerator("--kotlin_out", &kotlinGenerator, - "Generate Foo file."); - + "Generate Kotlin source file."); + return cli.Run(argc, argv); + } \ No newline at end of file