diff options
author | Chris Johns <chrisj@rtems.org> | 2020-09-15 11:20:44 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2020-09-16 15:52:15 +1000 |
commit | 089780d2de7014a9c451bbd54cd3bcc64b58dfc7 (patch) | |
tree | 1c6297479efa72be2a330ae8302e15894bca7f1c /waf_libbsd.py | |
parent | build: Separate the kernel and user land include paths (diff) | |
download | rtems-libbsd-089780d2de7014a9c451bbd54cd3bcc64b58dfc7.tar.bz2 |
waf: Implement module dependency checking in the build system
- Do not build a test if a dependency is not enabled.
- Perform a dependency check and generate an error if an enabled module
depends on a disabled module.
Closes #4077
Diffstat (limited to 'waf_libbsd.py')
-rw-r--r-- | waf_libbsd.py | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/waf_libbsd.py b/waf_libbsd.py index d7a0c224..b8ec0ce0 100644 --- a/waf_libbsd.py +++ b/waf_libbsd.py @@ -46,6 +46,10 @@ import builder import rtems_waf.rtems as rtems + +BUILDSET_DIR = builder.BUILDSET_DIR +BUILDSET_DEFAULT = builder.BUILDSET_DEFAULT + windows = os.name == 'nt' if windows: @@ -138,16 +142,22 @@ class Builder(builder.ModuleManager): self.data = {} - for mn in self.getEnabledModules(): + enabled_modules = self.getEnabledModules() + for mn in enabled_modules: m = self[mn] - if m.conditionalOn == "none": + enabled = True + for dep in m.dependencies: + if dep not in enabled_modules: + enabled = False + break + if enabled: for f in m.files: _dataInsert(self.data, 'all', f.getSpace(), f.getFragment()) - for cpu, files in sorted(m.cpuDependentSourceFiles.items()): - for f in files: - _dataInsert(self.data, cpu, f.getSpace(), - f.getFragment()) + for cpu, files in sorted(m.cpuDependentSourceFiles.items()): + for f in files: + _dataInsert(self.data, cpu, f.getSpace(), + f.getFragment()) # Start here if you need to understand self.data. Add 'True or' if self.trace: |