mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-05-14 01:39:57 +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:
parent
879eaa7c1a
commit
01855a5acd
12
builder.py
12
builder.py
@ -547,15 +547,17 @@ class RouteKeywordsFragmentComposer(BuildSystemFragmentComposer):
|
|||||||
|
|
||||||
class LexFragmentComposer(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.sym = sym
|
||||||
self.dep = dep
|
self.dep = dep
|
||||||
self.cflags, self.includes = _cflagsIncludes(cflags, includes)
|
self.cflags, self.includes = _cflagsIncludes(cflags, includes)
|
||||||
|
self.build = build
|
||||||
|
|
||||||
def compose(self, path):
|
def compose(self, path):
|
||||||
d = { 'file': path,
|
d = { 'file': path,
|
||||||
'sym': self.sym,
|
'sym': self.sym,
|
||||||
'dep': self.dep }
|
'dep': self.dep,
|
||||||
|
'build': self.build }
|
||||||
if None not in self.cflags:
|
if None not in self.cflags:
|
||||||
d['cflags'] = self.cflags
|
d['cflags'] = self.cflags
|
||||||
if None not in self.includes:
|
if None not in self.includes:
|
||||||
@ -564,15 +566,17 @@ class LexFragmentComposer(BuildSystemFragmentComposer):
|
|||||||
|
|
||||||
class YaccFragmentComposer(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.sym = sym
|
||||||
self.header = header
|
self.header = header
|
||||||
self.cflags, self.includes = _cflagsIncludes(cflags, includes)
|
self.cflags, self.includes = _cflagsIncludes(cflags, includes)
|
||||||
|
self.build = build
|
||||||
|
|
||||||
def compose(self, path):
|
def compose(self, path):
|
||||||
d = { 'file': path,
|
d = { 'file': path,
|
||||||
'sym': self.sym,
|
'sym': self.sym,
|
||||||
'header': self.header }
|
'header': self.header,
|
||||||
|
'build': self.build }
|
||||||
if None not in self.cflags:
|
if None not in self.cflags:
|
||||||
d['cflags'] = self.cflags
|
d['cflags'] = self.cflags
|
||||||
if None not in self.includes:
|
if None not in self.includes:
|
||||||
|
@ -361,12 +361,13 @@ class Builder(builder.ModuleManager):
|
|||||||
bld(target = lex['file'][:-2]+ '.c',
|
bld(target = lex['file'][:-2]+ '.c',
|
||||||
source = lex['file'],
|
source = lex['file'],
|
||||||
rule = lex_rule)
|
rule = lex_rule)
|
||||||
bld.objects(target = 'lex_%s' % (lex['sym']),
|
if lex['build']:
|
||||||
features = 'c',
|
bld.objects(target = 'lex_%s' % (lex['sym']),
|
||||||
cflags = cflags,
|
features = 'c',
|
||||||
includes = lexIncludes + includes,
|
cflags = cflags,
|
||||||
defines = defines + lexDefines,
|
includes = lexIncludes + includes,
|
||||||
source = lex['file'][:-2] + '.c')
|
defines = defines + lexDefines,
|
||||||
|
source = lex['file'][:-2] + '.c')
|
||||||
libbsd_use += ['lex_%s' % (lex['sym'])]
|
libbsd_use += ['lex_%s' % (lex['sym'])]
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -398,12 +399,13 @@ class Builder(builder.ModuleManager):
|
|||||||
bld(target = yaccFile[:-2] + '.c',
|
bld(target = yaccFile[:-2] + '.c',
|
||||||
source = yaccFile,
|
source = yaccFile,
|
||||||
rule = yacc_rule)
|
rule = yacc_rule)
|
||||||
bld.objects(target = 'yacc_%s' % (yaccSym),
|
if yacc['build']:
|
||||||
features = 'c',
|
bld.objects(target = 'yacc_%s' % (yaccSym),
|
||||||
cflags = cflags,
|
features = 'c',
|
||||||
includes = yaccIncludes + includes,
|
cflags = cflags,
|
||||||
defines = defines + yaccDefines,
|
includes = yaccIncludes + includes,
|
||||||
source = yaccFile[:-2] + '.c')
|
defines = defines + yaccDefines,
|
||||||
|
source = yaccFile[:-2] + '.c')
|
||||||
libbsd_use += ['yacc_%s' % (yaccSym)]
|
libbsd_use += ['yacc_%s' % (yaccSym)]
|
||||||
|
|
||||||
#
|
#
|
||||||
|
Loading…
x
Reference in New Issue
Block a user