25 lines
956 B
Python
25 lines
956 B
Python
|
|
class ConfigHeadersRule(dep.Rule):
|
|
def __init__(self):
|
|
self.script = sourcerule(Types.SCRIPT, "config.py")
|
|
self.sources = sourcerules(Types.ANY, lglob("config/*.c"))
|
|
dep.Rule.__init__(self, script=[self.script], sources=self.sources)
|
|
def doit(self, sysentry, state, files, params):
|
|
script = files["script"].single(Types.SCRIPT)
|
|
outdir = sysentry.bin_dir("arch", "kernel", "compiler")
|
|
indir = sysentry.sys.source_dir
|
|
sysentry.command("%s --genfiles_dir=%s --source_dir=%s" % (script, outdir, indir))
|
|
gen_headers = ["base/basic_types.h"]
|
|
return [(Types.HEADER, sysentry.file(h, "arch", "kernel", "compiler"))
|
|
for h in gen_headers]
|
|
|
|
register(name = "config_headers",
|
|
rule = ConfigHeadersRule())
|
|
|
|
librule(
|
|
sources = ["common.c", "cc.cc", "ccmem.cc"],
|
|
headers = ["cc.h", "ccmem.h", "common.h", "compiler.h",
|
|
"compiler_impl.h",
|
|
"debug.h", "scale.h", ":config_headers"])
|
|
|