Add a new 'run' method to the builder to build everything.
This commit is contained in:
parent
ea86fea926
commit
14d609d007
|
@ -759,9 +759,6 @@ class Builder:
|
||||||
for dep in dependencies_order:
|
for dep in dependencies_order:
|
||||||
self.targets[dep] = _targets[dep]
|
self.targets[dep] = _targets[dep]
|
||||||
|
|
||||||
self.sources = remove_duplicates(dep.source for dep in self.targets.values())
|
|
||||||
self.builders = (dep.builder for dep in self.targets.values())
|
|
||||||
|
|
||||||
def add_targets(self, targetName, targets):
|
def add_targets(self, targetName, targets):
|
||||||
if targetName in targets:
|
if targetName in targets:
|
||||||
return
|
return
|
||||||
|
@ -780,16 +777,29 @@ class Builder:
|
||||||
yield from self.order_dependencies(_targets, depName)
|
yield from self.order_dependencies(_targets, depName)
|
||||||
yield targetName
|
yield targetName
|
||||||
|
|
||||||
def prepare(self):
|
def prepare_sources(self):
|
||||||
for source in self.sources:
|
sources = remove_duplicates(dep.source for dep in self.targets.values())
|
||||||
|
for source in sources:
|
||||||
print("prepare sources {} :".format(source.name))
|
print("prepare sources {} :".format(source.name))
|
||||||
source.prepare()
|
source.prepare()
|
||||||
|
|
||||||
def build(self):
|
def build(self):
|
||||||
for builder in self.builders:
|
builders = (dep.builder for dep in self.targets.values())
|
||||||
|
for builder in builders:
|
||||||
print("build {} :".format(builder.name))
|
print("build {} :".format(builder.name))
|
||||||
builder.build()
|
builder.build()
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
try:
|
||||||
|
print("[INSTALL PACKAGES]")
|
||||||
|
self.buildEnv.install_packages()
|
||||||
|
print("[PREPARE]")
|
||||||
|
self.prepare_sources()
|
||||||
|
print("[BUILD]")
|
||||||
|
self.build()
|
||||||
|
except StopBuild:
|
||||||
|
print("Stopping build due to errors")
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('working_dir', default=".", nargs='?')
|
parser.add_argument('working_dir', default=".", nargs='?')
|
||||||
|
@ -805,10 +815,4 @@ if __name__ == "__main__":
|
||||||
options = parse_args()
|
options = parse_args()
|
||||||
options.working_dir = os.path.abspath(options.working_dir)
|
options.working_dir = os.path.abspath(options.working_dir)
|
||||||
builder = Builder(options)
|
builder = Builder(options)
|
||||||
try:
|
builder.run()
|
||||||
print("[PREPARE]")
|
|
||||||
builder.prepare()
|
|
||||||
print("[BUILD]")
|
|
||||||
builder.build()
|
|
||||||
except StopBuild:
|
|
||||||
print("Stopping build due to errors")
|
|
||||||
|
|
Loading…
Reference in New Issue