diff --git a/docs/source/Compiler.md b/docs/source/Compiler.md index 7b15c79d9..296e998ef 100644 --- a/docs/source/Compiler.md +++ b/docs/source/Compiler.md @@ -229,5 +229,10 @@ Additional options: - `--force-empty-vectors` : When serializing from object API representation, force vectors to empty rather than null. +- `--flexbuffers` : Used with "binary" and "json" options, it generates + data using schema-less FlexBuffers. + +- `--no-warnings` : Inhibit all warning messages. + NOTE: short-form options for generators are deprecated, use the long form whenever possible. diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 6afdc7a51..31a41d752 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -572,6 +572,7 @@ struct IDLOptions { std::string proto_namespace_suffix; std::string filename_suffix; std::string filename_extension; + bool no_warnings; // Possible options for the more general generator below. enum Language { @@ -662,6 +663,7 @@ struct IDLOptions { cs_gen_json_serializer(false), filename_suffix("_generated"), filename_extension(), + no_warnings(false), lang(IDLOptions::kJava), mini_reflect(IDLOptions::kNone), require_explicit_ids(false), diff --git a/src/flatc.cpp b/src/flatc.cpp index 40e16fab9..09acb076e 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -171,6 +171,7 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const { " force vectors to empty rather than null.\n" " --flexbuffers Used with \"binary\" and \"json\" options, it generates\n" " data using schema-less FlexBuffers.\n" + " --no-warnings Inhibit all warning messages.\n" "FILEs may be schemas (must end in .fbs), binary schemas (must end in .bfbs),\n" "or JSON files (conforming to preceding schema). FILEs after the -- must be\n" "binary flatbuffer format files.\n" @@ -372,6 +373,8 @@ int FlatCompiler::Compile(int argc, const char **argv) { opts.use_flexbuffers = true; } else if (arg == "--gen-jvmstatic") { opts.gen_jvmstatic = true; + } else if (arg == "--no-warnings") { + opts.no_warnings = true; } else if (arg == "--cpp-std") { if (++argi >= argc) Error("missing C++ standard specification" + arg, true); diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index bb23dc115..a32c93c3e 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -142,7 +142,10 @@ void Parser::Message(const std::string &msg) { error_ += ": " + msg; } -void Parser::Warning(const std::string &msg) { Message("warning: " + msg); } +void Parser::Warning(const std::string &msg) { + if (!opts.no_warnings) + Message("warning: " + msg); +} CheckedError Parser::Error(const std::string &msg) { Message("error: " + msg);