diff options
Diffstat (limited to 'builder.py')
-rwxr-xr-x | builder.py | 81 |
1 files changed, 59 insertions, 22 deletions
@@ -534,6 +534,16 @@ class BuildSystemFragmentComposer(object): else: self.includes = includes + def __str__(self): + return '' + + def get_includes(self): + if None in self.includes: + incs = [] + else: + incs = self.includes + return incs + def compose(self, path): return '' @@ -542,11 +552,14 @@ class SourceFileFragmentComposer(BuildSystemFragmentComposer): def __init__(self, cflags="default", includes=None): self.cflags, self.includes = _cflagsIncludes(cflags, includes) + def _get_flags(self): + return self.cflags + self.get_includes() + + def __str__(self): + return 'SF: ' + ' '.join(self._get_flags()) + def compose(self, path): - if None in self.includes: - flags = self.cflags - else: - flags = self.cflags + self.includes + flags = self._get_flags() return ['sources', flags, ('default', None)], [path], self.cflags, self.includes @@ -558,6 +571,12 @@ class SourceFileIfHeaderComposer(SourceFileFragmentComposer): self.headers = headers super(SourceFileIfHeaderComposer, self).__init__(cflags=cflags, includes=includes) + def __str__(self): + incs = self.headers + self.get_includes + if len(incs) > 0: + return 'SFIH:' + ' '.join(incs) + else: + return '' def compose(self, path): r = SourceFileFragmentComposer.compose(self, path) @@ -586,6 +605,9 @@ class TestFragementComposer(BuildSystemFragmentComposer): self.netTest = netTest self.extraLibs = extraLibs + def __str__(self): + return 'TEST: ' + self.testName + def compose(self, path): return ['tests', self.testName, ('default', None)], { 'configTest': self.configTest, @@ -714,10 +736,9 @@ class YaccFragmentComposer(BuildSystemFragmentComposer): return ['yacc', path, ('default', None)], d -# -# File - a file in the source we move backwards and forwards. -# class File(object): + '''A file of source we move backwards and forwards and build.''' + def __init__(self, path, pathComposer, forwardConverter, reverseConverter, buildSystemComposer): if verbose(verboseMoreDetail): @@ -734,6 +755,13 @@ class File(object): self.reverseConverter = reverseConverter self.buildSystemComposer = buildSystemComposer + def __str__(self): + out = self.path + bsc = str(self.buildSystemComposer) + if len(bsc) > 0: + out += ' (' + bsc + ')' + return out + def processSource(self, forward): if forward: if verbose(verboseDetail): @@ -751,10 +779,9 @@ class File(object): self.pathComposer.composeLibBSDPath(self.path, '')) -# -# Module - logical group of related files we can perform actions on -# class Module(object): + '''Logical group of related files we can perform actions on''' + def __init__(self, manager, name, enabled=True): self.manager = manager self.name = name @@ -763,6 +790,20 @@ class Module(object): self.cpuDependentSourceFiles = {} self.dependencies = [] + def __str__(self): + out = [self.name + ': ' + self.conditionalOn] + if len(self.dependencies) > 0: + out += [' Deps: ' + str(len(self.dependencies))] + out += [' ' + type(d).__name__ for d in self.dependencies] + if len(self.files) > 0: + out += [' Files: ' + str(len(self.files))] + out += [' ' + str(f) for f in self.files] + if len(self.cpuDependentSourceFiles) > 0: + out += [' CPU Dep: ' + str(len(self.cpuDependentSourceFiles))] + for cpu in self.cpuDependentSourceFiles: + out += [' ' + cpu + ':' + str(f) for f in self.cpuDependentSourceFiles[cpu]] + return os.linesep.join(out) + def initCPUDependencies(self, cpu): if cpu not in self.cpuDependentSourceFiles: self.cpuDependentSourceFiles[cpu] = [] @@ -776,15 +817,6 @@ class Module(object): for f in files: f.processSource(direction) - def addFiles(self, - newFiles, - buildSystemComposer=BuildSystemFragmentComposer()): - files = [] - for newFile in newFiles: - assertFile(newFile) - files += [File(newFile, composers, buildSystemComposer)] - return files - def addFile(self, f): self.files += [f] @@ -912,10 +944,9 @@ class Module(object): self.dependencies += [dep] -# -# Manager - a collection of modules. -# class ModuleManager(object): + '''A manager for a collection of modules.''' + def __init__(self): self.modules = {} self.generator = {} @@ -927,6 +958,12 @@ class ModuleManager(object): raise KeyError('module %s not found' % (key)) return self.modules[key] + def __str__(self): + out = ['Modules: ' + str(len(self.modules)), ''] + for m in sorted(self.modules): + out += [str(self.modules[m]), ''] + return os.linesep.join(out) + def getAllModules(self): if 'modules' in self.configuration: return self.configuration['modules'] |