Commit e278b645 authored by Max Cai's avatar Max Cai Committed by Android Git Automerger

am 43365182: am 829f6c01: Merge "Adds --ignore_service nano proto compiler flag"

* commit '43365182bcd23a011476fb5e57930f1829da41fa':
  Adds --ignore_service nano proto compiler flag
parents a4b3e9d2 5cc8a31e
...@@ -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