diff options
author | Chris Johns <chrisj@rtems.org> | 2020-03-05 21:18:05 +1100 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2020-03-05 21:18:05 +1100 |
commit | cbdeec00de5c40b168adf5395a9e2e7c55ceee7c (patch) | |
tree | c5b7008adb0985281f37bd4aeccff53597590e23 /builder.py | |
parent | rtems_waf: Update to master (096372fc4504) (diff) | |
download | rtems-libbsd-cbdeec00de5c40b168adf5395a9e2e7c55ceee7c.tar.bz2 |
waf: Change the test configure check for libdebugger to it's lib
- Add support for a 'test-if-library'
- Use rtems_waf's 'test_application()' fragment in the check_cc
call
Closes #3948
Diffstat (limited to 'builder.py')
-rwxr-xr-x | builder.py | 30 |
1 files changed, 27 insertions, 3 deletions
@@ -505,15 +505,17 @@ class SourceFileIfHeaderComposer(SourceFileFragmentComposer): class TestFragementComposer(BuildSystemFragmentComposer): - def __init__(self, testName, fileFragments, runTest = True, netTest = False, extraLibs = []): + def __init__(self, testName, fileFragments, configTest = None, runTest = True, netTest = False, extraLibs = []): self.testName = testName self.fileFragments = fileFragments + self.configTest = configTest self.runTest = runTest self.netTest = netTest self.extraLibs = extraLibs def compose(self, path): - return ['tests', self.testName, ('default', None)], { 'files': self.fileFragments, + return ['tests', self.testName, ('default', None)], { 'configTest': self.configTest, + 'files': self.fileFragments, 'run': self.runTest, 'net': self.netTest, 'libs': self.extraLibs} @@ -524,7 +526,7 @@ class TestIfHeaderComposer(TestFragementComposer): if headers is not list: headers = [headers] self.headers = headers - super(TestIfHeaderComposer, self).__init__(testName, fileFragments, + super(TestIfHeaderComposer, self).__init__(testName, fileFragments, 'header', runTest = runTest, netTest = netTest, extraLibs = extraLibs) @@ -539,6 +541,27 @@ class TestIfHeaderComposer(TestFragementComposer): r[0][2] = (define_keys.strip(), self.headers) return r +class TestIfLibraryComposer(TestFragementComposer): + + def __init__(self, testName, libraries, fileFragments, runTest = True, netTest = False, extraLibs = []): + if libraries is not list: + libraries = [libraries] + self.libraries = libraries + super(TestIfLibraryComposer, self).__init__(testName, fileFragments, 'library', + runTest = runTest, netTest = netTest, + extraLibs = extraLibs) + + def compose(self, path): + r = TestFragementComposer.compose(self, path) + define_keys = '' + for l in self.libraries: + l = l.upper() + for c in '\/-.': + l = l.replace(c, '_') + define_keys += ' ' + l + r[0][2] = (define_keys.strip(), self.libraries) + return r + class KVMSymbolsFragmentComposer(BuildSystemFragmentComposer): def compose(self, path): @@ -857,3 +880,4 @@ class ModuleManager(object): self.generator['source-if-header'] = SourceFileIfHeaderComposer self.generator['test-if-header'] = TestIfHeaderComposer + self.generator['test-if-library'] = TestIfLibraryComposer |