Added --prefix-include option for generated includes.

Change-Id: I288cda33345362f9aec5cbe309e590bf64f328e1
Tested: on Linux.
parent b7bfecb4
......@@ -118,5 +118,8 @@ Additional options:
an evolution of. Gives errors if not. Useful to check if schema
modifications don't break schema evolution rules.
- `--include-prefix PATH` : Prefix this path to any generated include
statements.
NOTE: short-form options for generators are deprecated, use the long form
whenever possible.
......@@ -355,6 +355,7 @@ struct IDLOptions {
std::string cpp_object_api_pointer_type;
bool union_value_namespacing;
bool allow_non_utf8;
std::string include_prefix;
// Possible options for the more general generator below.
enum Language {
......
......@@ -97,6 +97,8 @@ std::string FlatCompiler::GetUsageString(const char* program_name) const {
" an evolution of. Gives errors if not.\n"
" --conform-includes Include path for the schema given with --conform\n"
" PATH \n"
" --include-prefix Prefix this path to any generated include statements.\n"
" PATH\n"
"FILEs may be schemas, or JSON files (conforming to preceding schema)\n"
"FILEs after the -- must be binary flatbuffer format files.\n"
"Output files are named using the base file name of the input,\n"
......@@ -142,6 +144,11 @@ int FlatCompiler::Compile(int argc, const char** argv) {
} else if (arg == "--conform-includes") {
if (++argi >= argc) Error("missing path following" + arg, true);
conform_include_directories.push_back(argv[argi]);
} else if (arg == "--include-prefix") {
if (++argi >= argc) Error("missing path following" + arg, true);
opts.include_prefix = argv[argi];
if (opts.include_prefix.back() != '/' &&
opts.include_prefix.back() != '\\') opts.include_prefix += "/";
} else if(arg == "--strict-json") {
opts.strict_json = true;
} else if(arg == "--allow-non-utf8") {
......
......@@ -70,7 +70,8 @@ class CppGenerator : public BaseGenerator {
const auto basename =
flatbuffers::StripPath(flatbuffers::StripExtension(it->first));
if (basename != file_name_) {
code_ += "#include \"" + basename + "_generated.h\"";
code_ += "#include \"" + parser_.opts.include_prefix + basename +
"_generated.h\"";
num_includes++;
}
}
......
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