Commit f1019531 authored by Max Cai's avatar Max Cai Committed by Gerrit Code Review

Merge "Adds --ignore_service nano proto compiler flag"

parents 56cba8ee d9425a62
...@@ -475,6 +475,7 @@ java_multiple_files -> true or false ...@@ -475,6 +475,7 @@ java_multiple_files -> true or false
java_nano_generate_has -> true or false [DEPRECATED] java_nano_generate_has -> true or false [DEPRECATED]
optional_field_style -> default or accessors optional_field_style -> default or accessors
enum_style -> c or java enum_style -> c or java
ignore_services -> true or false
java_package: java_package:
java_outer_classname: java_outer_classname:
...@@ -580,6 +581,13 @@ enum_style={c,java} (default: c) ...@@ -580,6 +581,13 @@ enum_style={c,java} (default: c)
compiler inlines all referenced enum constants into the call sites, compiler inlines all referenced enum constants into the call sites,
the interface remains unused and can be removed by ProGuard. the interface remains unused and can be removed by ProGuard.
ignore_services={true,false} (default: false)
Skips services definitions.
Nano doesn't support services. By default, if a service is defined
it will generate a compilation error. If this flag is set to true,
services will be silently ignored, instead.
To use nano protobufs within the Android repo: To use nano protobufs within the Android repo:
......
...@@ -105,7 +105,7 @@ bool FileGenerator::Validate(string* error) { ...@@ -105,7 +105,7 @@ bool FileGenerator::Validate(string* error) {
return false; return false;
} }
if (file_->service_count() != 0) { if (file_->service_count() != 0 && !params_.ignore_services()) {
error->assign(file_->name()); error->assign(file_->name());
error->append( error->append(
": Java NANO_RUNTIME does not support services\""); ": Java NANO_RUNTIME does not support services\"");
......
...@@ -142,6 +142,8 @@ bool JavaNanoGenerator::Generate(const FileDescriptor* file, ...@@ -142,6 +142,8 @@ bool JavaNanoGenerator::Generate(const FileDescriptor* file,
params.set_use_reference_types_for_primitives(option_value == "reftypes"); params.set_use_reference_types_for_primitives(option_value == "reftypes");
} else if (option_name == "generate_equals") { } else if (option_name == "generate_equals") {
params.set_generate_equals(option_value == "true"); params.set_generate_equals(option_value == "true");
} else if (option_name == "ignore_services") {
params.set_ignore_services(option_value == "true");
} else { } else {
*error = "Ignore unknown javanano generator option: " + option_name; *error = "Ignore unknown javanano generator option: " + option_name;
} }
......
...@@ -62,6 +62,7 @@ class Params { ...@@ -62,6 +62,7 @@ class Params {
bool optional_field_accessors_; bool optional_field_accessors_;
bool use_reference_types_for_primitives_; bool use_reference_types_for_primitives_;
bool generate_equals_; bool generate_equals_;
bool ignore_services_;
public: public:
Params(const string & base_name) : Params(const string & base_name) :
...@@ -73,7 +74,8 @@ class Params { ...@@ -73,7 +74,8 @@ class Params {
java_enum_style_(false), java_enum_style_(false),
optional_field_accessors_(false), optional_field_accessors_(false),
use_reference_types_for_primitives_(false), use_reference_types_for_primitives_(false),
generate_equals_(false) { generate_equals_(false),
ignore_services_(false) {
} }
const string& base_name() const { const string& base_name() const {
...@@ -195,6 +197,13 @@ class Params { ...@@ -195,6 +197,13 @@ class Params {
bool generate_equals() const { bool generate_equals() const {
return generate_equals_; return generate_equals_;
} }
void set_ignore_services(bool value) {
ignore_services_ = value;
}
bool ignore_services() const {
return ignore_services_;
}
}; };
} // namespace javanano } // namespace javanano
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment