summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2022-09-21 13:57:47 +1000
committerChris Johns <chrisj@rtems.org>2022-09-21 14:16:16 +1000
commit405378c7cbe5adf8b8f420956708c8bf8df62d06 (patch)
tree041ccf5c50cfdf267f0bf2691fe84e4666f2c589
parent09b5c225c075a08732c567a9fe0b379f55ce54ca (diff)
waf: Automatically include all buildsets in an RTEMS version
- Minor fixes with errors
-rw-r--r--builds.py38
-rw-r--r--wscript36
2 files changed, 29 insertions, 45 deletions
diff --git a/builds.py b/builds.py
index 5f7b22d..5953f39 100644
--- a/builds.py
+++ b/builds.py
@@ -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
- },
],
}
diff --git a/wscript b/wscript
index e3b88b2..85cf643 100644
--- a/wscript
+++ b/wscript
@@ -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)