Add generator option to configure #include directives.
This suits complex projects, where there are multiple interdependent .proto files in various directories. Patch by Michael Haberler.
This commit is contained in:
@@ -450,11 +450,13 @@ def generate_header(dependencies, headername, enums, messages, options):
|
|||||||
symbol = make_identifier(headername)
|
symbol = make_identifier(headername)
|
||||||
yield '#ifndef _PB_%s_\n' % symbol
|
yield '#ifndef _PB_%s_\n' % symbol
|
||||||
yield '#define _PB_%s_\n' % symbol
|
yield '#define _PB_%s_\n' % symbol
|
||||||
yield '#include <pb.h>\n\n'
|
yield options.libformat % ('pb.h')
|
||||||
|
yield '\n'
|
||||||
|
|
||||||
for dependency in dependencies:
|
for dependency in dependencies:
|
||||||
noext = os.path.splitext(dependency)[0]
|
noext = os.path.splitext(dependency)[0]
|
||||||
yield '#include "%s.%s.h"\n' % (noext,options.extension)
|
yield options.genformat % (noext + '.' + options.extension + '.h')
|
||||||
|
yield '\n'
|
||||||
|
|
||||||
yield '#ifdef __cplusplus\n'
|
yield '#ifdef __cplusplus\n'
|
||||||
yield 'extern "C" {\n'
|
yield 'extern "C" {\n'
|
||||||
@@ -490,7 +492,8 @@ def generate_source(headername, enums, messages):
|
|||||||
|
|
||||||
yield '/* Automatically generated nanopb constant definitions */\n'
|
yield '/* Automatically generated nanopb constant definitions */\n'
|
||||||
yield '/* Generated by %s at %s. */\n\n' % (nanopb_version, time.asctime())
|
yield '/* Generated by %s at %s. */\n\n' % (nanopb_version, time.asctime())
|
||||||
yield '#include "%s"\n\n' % headername
|
yield options.genformat % (headername)
|
||||||
|
yield '\n'
|
||||||
|
|
||||||
for msg in messages:
|
for msg in messages:
|
||||||
yield msg.default_decl(False)
|
yield msg.default_decl(False)
|
||||||
@@ -583,7 +586,13 @@ optparser = OptionParser(
|
|||||||
optparser.add_option("-x", dest="exclude", metavar="FILE", action="append", default=[],
|
optparser.add_option("-x", dest="exclude", metavar="FILE", action="append", default=[],
|
||||||
help="Exclude file from generated #include list.")
|
help="Exclude file from generated #include list.")
|
||||||
optparser.add_option("-e", "--extension", dest="extension", metavar="EXTENSION", default="pb",
|
optparser.add_option("-e", "--extension", dest="extension", metavar="EXTENSION", default="pb",
|
||||||
help="use extension instead of 'pb' for generated files.")
|
help="Set extension to use instead of 'pb' for generated files. [default: %default]")
|
||||||
|
optparser.add_option("-Q", "--generated-include-format", dest="genformat",
|
||||||
|
metavar="FORMAT", default='#include "%s"\n',
|
||||||
|
help="Set format string to use for including other .pb.h files. [default: %default]")
|
||||||
|
optparser.add_option("-L", "--library-include-format", dest="libformat",
|
||||||
|
metavar="FORMAT", default='#include <%s>\n',
|
||||||
|
help="Set format string to use for including the nanopb pb.h header. [default: %default]")
|
||||||
optparser.add_option("-q", "--quiet", dest="quiet", action="store_true", default=False,
|
optparser.add_option("-q", "--quiet", dest="quiet", action="store_true", default=False,
|
||||||
help="Don't print anything except errors.")
|
help="Don't print anything except errors.")
|
||||||
optparser.add_option("-v", "--verbose", dest="verbose", action="store_true", default=False,
|
optparser.add_option("-v", "--verbose", dest="verbose", action="store_true", default=False,
|
||||||
|
|||||||
Reference in New Issue
Block a user