mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-15 20:21:19 +08:00
waf: Allow to only generate lex and yacc.
In some applications, it's usefull if the files generated by lex or yacc are not build automatically. With that it is for example possible to create a wrapper source file that sets some defines before the generated code is parsed.
This commit is contained in:
12
builder.py
12
builder.py
@@ -547,15 +547,17 @@ class RouteKeywordsFragmentComposer(BuildSystemFragmentComposer):
|
||||
|
||||
class LexFragmentComposer(BuildSystemFragmentComposer):
|
||||
|
||||
def __init__(self, sym, dep, cflags = None, includes = None):
|
||||
def __init__(self, sym, dep, cflags = None, includes = None, build = True):
|
||||
self.sym = sym
|
||||
self.dep = dep
|
||||
self.cflags, self.includes = _cflagsIncludes(cflags, includes)
|
||||
self.build = build
|
||||
|
||||
def compose(self, path):
|
||||
d = { 'file': path,
|
||||
'sym': self.sym,
|
||||
'dep': self.dep }
|
||||
'dep': self.dep,
|
||||
'build': self.build }
|
||||
if None not in self.cflags:
|
||||
d['cflags'] = self.cflags
|
||||
if None not in self.includes:
|
||||
@@ -564,15 +566,17 @@ class LexFragmentComposer(BuildSystemFragmentComposer):
|
||||
|
||||
class YaccFragmentComposer(BuildSystemFragmentComposer):
|
||||
|
||||
def __init__(self, sym, header, cflags = None, includes = None):
|
||||
def __init__(self, sym, header, cflags = None, includes = None, build = True):
|
||||
self.sym = sym
|
||||
self.header = header
|
||||
self.cflags, self.includes = _cflagsIncludes(cflags, includes)
|
||||
self.build = build
|
||||
|
||||
def compose(self, path):
|
||||
d = { 'file': path,
|
||||
'sym': self.sym,
|
||||
'header': self.header }
|
||||
'header': self.header,
|
||||
'build': self.build }
|
||||
if None not in self.cflags:
|
||||
d['cflags'] = self.cflags
|
||||
if None not in self.includes:
|
||||
|
@@ -361,6 +361,7 @@ class Builder(builder.ModuleManager):
|
||||
bld(target = lex['file'][:-2]+ '.c',
|
||||
source = lex['file'],
|
||||
rule = lex_rule)
|
||||
if lex['build']:
|
||||
bld.objects(target = 'lex_%s' % (lex['sym']),
|
||||
features = 'c',
|
||||
cflags = cflags,
|
||||
@@ -398,6 +399,7 @@ class Builder(builder.ModuleManager):
|
||||
bld(target = yaccFile[:-2] + '.c',
|
||||
source = yaccFile,
|
||||
rule = yacc_rule)
|
||||
if yacc['build']:
|
||||
bld.objects(target = 'yacc_%s' % (yaccSym),
|
||||
features = 'c',
|
||||
cflags = cflags,
|
||||
|
Reference in New Issue
Block a user