Merge "Compile javamicro as a plugin"
diff --git a/Android.bp b/Android.bp
index 1c06b82..e356419 100644
--- a/Android.bp
+++ b/Android.bp
@@ -263,8 +263,10 @@
// Compiler library for the host
// =======================================================
-cc_library_host_shared {
+cc_library {
name: "libprotoc",
+ host_supported: true,
+ device_supported: false,
defaults: ["libprotobuf-cpp-full-defaults"],
srcs: [
@@ -386,15 +388,6 @@
"src/google/protobuf/compiler/java/java_shared_code_generator.cc",
"src/google/protobuf/compiler/java/java_string_field.cc",
"src/google/protobuf/compiler/java/java_string_field_lite.cc",
- "src/google/protobuf/compiler/javamicro/javamicro_enum.cc",
- "src/google/protobuf/compiler/javamicro/javamicro_enum_field.cc",
- "src/google/protobuf/compiler/javamicro/javamicro_field.cc",
- "src/google/protobuf/compiler/javamicro/javamicro_file.cc",
- "src/google/protobuf/compiler/javamicro/javamicro_generator.cc",
- "src/google/protobuf/compiler/javamicro/javamicro_helpers.cc",
- "src/google/protobuf/compiler/javamicro/javamicro_message.cc",
- "src/google/protobuf/compiler/javamicro/javamicro_message_field.cc",
- "src/google/protobuf/compiler/javamicro/javamicro_primitive_field.cc",
"src/google/protobuf/compiler/javanano/javanano_enum.cc",
"src/google/protobuf/compiler/javanano/javanano_enum_field.cc",
"src/google/protobuf/compiler/javanano/javanano_extension.cc",
@@ -762,3 +755,30 @@
enabled: false,
},
}
+
+// Java micro generator plugin
+// =======================================================
+cc_binary_host {
+ name: "protoc-gen-javamicro",
+ defaults: ["protobuf-cflags-defaults"],
+ srcs: [
+ "src/google/protobuf/compiler/javamicro/javamicro_enum.cc",
+ "src/google/protobuf/compiler/javamicro/javamicro_enum_field.cc",
+ "src/google/protobuf/compiler/javamicro/javamicro_field.cc",
+ "src/google/protobuf/compiler/javamicro/javamicro_file.cc",
+ "src/google/protobuf/compiler/javamicro/javamicro_generator.cc",
+ "src/google/protobuf/compiler/javamicro/javamicro_helpers.cc",
+ "src/google/protobuf/compiler/javamicro/javamicro_main.cc",
+ "src/google/protobuf/compiler/javamicro/javamicro_message.cc",
+ "src/google/protobuf/compiler/javamicro/javamicro_message_field.cc",
+ "src/google/protobuf/compiler/javamicro/javamicro_primitive_field.cc",
+ ],
+ local_include_dirs: ["src"],
+ static_libs: [
+ "libprotoc",
+ "libz",
+ ],
+ stl: "libc++_static",
+
+ cflags: IGNORED_WARNINGS,
+}
diff --git a/src/google/protobuf/compiler/javamicro/javamicro_file.cc b/src/google/protobuf/compiler/javamicro/javamicro_file.cc
index 43bf012..3d64e04 100644
--- a/src/google/protobuf/compiler/javamicro/javamicro_file.cc
+++ b/src/google/protobuf/compiler/javamicro/javamicro_file.cc
@@ -118,8 +118,8 @@
if (!params_.has_java_outer_classname(file_->name())
&& file_->message_type_count() == 1
&& file_->enum_type_count() == 0 && file_->extension_count() == 0) {
- cout << "INFO: " << file_->name() << ":" << endl;
- cout << "Javamicro generator has changed to align with java generator. "
+ cerr << "INFO: " << file_->name() << ":" << endl;
+ cerr << "Javamicro generator has changed to align with java generator. "
"An outer class will be created for this file and the single message "
"in the file will become a nested class. Use java_multiple_files to "
"skip generating the outer class, or set an explicit "
diff --git a/src/google/protobuf/compiler/javamicro/javamicro_main.cc b/src/google/protobuf/compiler/javamicro/javamicro_main.cc
new file mode 100644
index 0000000..4a75044
--- /dev/null
+++ b/src/google/protobuf/compiler/javamicro/javamicro_main.cc
@@ -0,0 +1,8 @@
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/javamicro/javamicro_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+
+int main(int argc, char* argv[]) {
+ google::protobuf::compiler::javamicro::JavaMicroGenerator generator;
+ return google::protobuf::compiler::PluginMain(argc, argv, &generator);
+}
diff --git a/src/google/protobuf/compiler/main.cc b/src/google/protobuf/compiler/main.cc
index 400c556..66ad13b 100644
--- a/src/google/protobuf/compiler/main.cc
+++ b/src/google/protobuf/compiler/main.cc
@@ -34,7 +34,6 @@
#include <google/protobuf/compiler/cpp/cpp_generator.h>
#include <google/protobuf/compiler/python/python_generator.h>
#include <google/protobuf/compiler/java/java_generator.h>
-#include <google/protobuf/compiler/javamicro/javamicro_generator.h>
#include <google/protobuf/compiler/javanano/javanano_generator.h>
#include <google/protobuf/compiler/ruby/ruby_generator.h>
#include <google/protobuf/compiler/csharp/csharp_generator.h>
@@ -67,11 +66,6 @@
cli.RegisterGenerator("--javanano_out", &javanano_generator,
"Generate Java Nano source file.");
- // Java Micro
- google::protobuf::compiler::javamicro::JavaMicroGenerator javamicro_generator;
- cli.RegisterGenerator("--javamicro_out", &javamicro_generator,
- "Generate Java Micro source file.");
-
// Ruby
google::protobuf::compiler::ruby::Generator rb_generator;
cli.RegisterGenerator("--ruby_out", &rb_generator,