From d797c5dcd2230772a80567ea20ac7820a03fb165 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Mon, 26 Mar 2018 15:14:53 +1100 Subject: waf: Refactor libbsd.py to support per module generation. This change allows us to control the modules we want to build. Update #3351 --- builder.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'builder.py') 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() -- cgit v1.2.3