diff options
author | Chris Johns <chrisj@rtems.org> | 2018-03-26 15:14:53 +1100 |
---|---|---|
committer | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2018-04-10 08:54:58 +0200 |
commit | d797c5dcd2230772a80567ea20ac7820a03fb165 (patch) | |
tree | 67a1a0f351627f0b6a842de13a06aa47e02368f4 /builder.py | |
parent | f7a09b59853bae31861e572f5d5cde42f762c233 (diff) |
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-x | builder.py | 27 |
1 files changed, 24 insertions, 3 deletions
@@ -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() |