summaryrefslogtreecommitdiffstats
path: root/builder.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2018-03-26 15:14:53 +1100
committerChristian Mauderer <christian.mauderer@embedded-brains.de>2018-04-10 08:54:58 +0200
commitd797c5dcd2230772a80567ea20ac7820a03fb165 (patch)
tree67a1a0f351627f0b6a842de13a06aa47e02368f4 /builder.py
parentwaf: Support building from libbsd.py directly from waf. (diff)
downloadrtems-libbsd-d797c5dcd2230772a80567ea20ac7820a03fb165.tar.bz2
waf: Refactor libbsd.py to support per module generation.
This change allows us to control the modules we want to build. Update #3351
Diffstat (limited to 'builder.py')
-rwxr-xr-xbuilder.py27
1 files changed, 24 insertions, 3 deletions
diff --git a/builder.py b/builder.py
index 30d1513d..2faf98d0 100755
--- a/builder.py
+++ b/builder.py
@@ -484,13 +484,18 @@ class File(object):
# Module - logical group of related files we can perform actions on
#
class Module(object):
- def __init__(self, name):
+ def __init__(self, manager, name, enabled = True):
+ self.manager = manager
self.name = name
+ self.enabled = enabled
self.conditionalOn = "none"
self.files = []
self.cpuDependentSourceFiles = {}
self.dependencies = []
+ def isEnabled(self):
+ return self.enabled
+
def initCPUDependencies(self, cpu):
if cpu not in self.cpuDependentSourceFiles:
self.cpuDependentSourceFiles[cpu] = []
@@ -639,8 +644,15 @@ class ModuleManager(object):
raise KeyError('module %s not found' % (key))
return self.modules[key]
- def getModules(self):
- return sorted(self.modules.keys())
+ def getAllModules(self):
+ if 'modules' in self.configuration:
+ return self.configuration['modules']
+ return []
+
+ def getEnabledModules(self):
+ if 'modules-enabled' in self.configuration:
+ return self.configuration['modules-enabled']
+ return []
def addModule(self, module):
self.modules[module.name] = module
@@ -656,3 +668,12 @@ class ModuleManager(object):
def getConfiguration(self):
return self.configuration
+
+ def setModuleConfigiuration(self):
+ mods = sorted(self.modules.keys())
+ self.configuration['modules'] = mods
+ self.configuration['modules-enabled'] = [m for m in mods if self.modules[m].isEnabled()]
+
+ def generateBuild(self):
+ for m in self.getEnabledModules():
+ self.modules[m].generate()