summaryrefslogtreecommitdiffstats
path: root/waf_libbsd.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2020-09-15 11:20:44 +1000
committerChris Johns <chrisj@rtems.org>2020-09-16 15:49:37 +1000
commit7f7363f5f46f0e762bbaee089db9904324ce11f9 (patch)
tree01bb2398e0ea5752beb0f26536ae1f86eea0f6e1 /waf_libbsd.py
parentbuild: Separate the kernel and user land include paths (diff)
downloadrtems-libbsd-7f7363f5f46f0e762bbaee089db9904324ce11f9.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.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/waf_libbsd.py b/waf_libbsd.py
index c457cbbd..558690b1 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: