From cbdeec00de5c40b168adf5395a9e2e7c55ceee7c Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Thu, 5 Mar 2020 21:18:05 +1100 Subject: 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 --- builder.py | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'builder.py') diff --git a/builder.py b/builder.py index 2921bab8..0eda461f 100755 --- a/builder.py +++ b/builder.py @@ -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 -- cgit v1.2.3