diff options
author | Chris Johns <chrisj@rtems.org> | 2022-09-21 13:57:47 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2022-09-21 14:16:16 +1000 |
commit | 405378c7cbe5adf8b8f420956708c8bf8df62d06 (patch) | |
tree | 041ccf5c50cfdf267f0bf2691fe84e4666f2c589 | |
parent | 09b5c225c075a08732c567a9fe0b379f55ce54ca (diff) |
waf: Automatically include all buildsets in an RTEMS version
- Minor fixes with errors
-rw-r--r-- | builds.py | 38 | ||||
-rw-r--r-- | wscript | 36 |
2 files changed, 29 insertions, 45 deletions
@@ -31,18 +31,7 @@ RSB Deployment Builds rtems_version_default = 6 configs = { - 5: [ - { - 'buildset': '5/project-tools', - 'good': True, - 'dry-run': False - }, - { - 'buildset': '5/project-tools-bsp', - 'good': True, - 'dry-run': False - }, - ], + 5: [], 6: [ { 'buildset': '6/test-aarch64-bsps-bad-opts', @@ -69,30 +58,5 @@ configs = { 'good': True, 'dry-run': True }, - { - 'buildset': '6/project-tools', - 'good': True, - 'dry-run': False - }, - { - 'buildset': '6/project-tools-bsp', - 'good': True, - 'dry-run': False - }, - { - 'buildset': '6/project-tools-bsp-config', - 'good': True, - 'dry-run': False - }, - { - 'buildset': '6/project-aarch64-tools-bsp-libbsd', - 'good': True, - 'dry-run': False - }, - { - 'buildset': '6/project-aarch64-tools-bsp-libbsd-config', - 'good': True, - 'dry-run': False - }, ], } @@ -45,9 +45,9 @@ import builds from waflib import Context, Build, Errors, Logs, Scripting, Task, TaskGen, Utils - out = 'out' + class set_builder_task(Task.Task): always_run = True semaphore = Task.TaskSemaphore(1) @@ -76,10 +76,11 @@ class set_builder_task(Task.Task): else: r = 0 if r != 0: - self.generator.bld.to_log(e.stderr) + self.generator.bld.to_log(err) self.generator.bld.to_log('rsb cmd: ' + self.rsb_cmd + os.linesep) return r + class set_builder_task_run(set_builder_task): '''run the build, run after dry-run tasks so they checked first''' ext_in = ['dry-run'] @@ -94,9 +95,9 @@ class set_builder_task_dry_run(set_builder_task): @TaskGen.feature('*') def set_builder_generator(self): if getattr(self, 'dry_run', None): - task_type ='set_builder_task_dry_run' + task_type = 'set_builder_task_dry_run' else: - task_type ='set_builder_task_run' + task_type = 'set_builder_task_run' tsk = self.create_task(task_type) tsk.name = getattr(self, 'name', None) tsk.base = getattr(self, 'base', None) @@ -141,6 +142,24 @@ def set_builder_build(bld, build, dry_run=False, show=False): always=True) +def find_buildsets(version): + path = os.path.join('config', str(version)) + discovered = [] + for root, dirs, files in os.walk(path): + base = root[len('config') + 1:] + for f in files: + r, e = os.path.splitext(f) + if e == '.bset': + discovered += [os.path.join(base, r)] + bs_default = [bs['buildset'] for bs in builds.configs[version]] + bs = builds.configs[version] + [{ + 'buildset': b, + 'good': True, + 'dry-run': False + } for b in discovered if b not in bs_default] + return sorted(bs, key=lambda bs: bs['buildset']) + + def options(opt): opt.add_option('--rsb', default=None, @@ -194,10 +213,11 @@ def configure(conf): def build(bld): dry_runs = [ - build for build in builds.configs[bld.env.RTEMS_VERSION] if build['dry-run'] + build for build in find_buildsets(bld.env.RTEMS_VERSION) + if build['dry-run'] ] tars = [ - build for build in builds.configs[bld.env.RTEMS_VERSION] + build for build in find_buildsets(bld.env.RTEMS_VERSION) if not build['dry-run'] ] for build in dry_runs: @@ -230,10 +250,10 @@ def distclean(ctx): def show(bld): - for build in builds.configs[bld.env.RTEMS_VERSION]: + for build in find_buildsets(bld.env.RTEMS_VERSION): set_builder_build(bld, build, show=True) def dry_run(bld): - for build in builds.configs[bld.env.RTEMS_VERSION]: + for build in find_buildsets(bld.env.RTEMS_VERSION): set_builder_build(bld, build, dry_run=True) |