|
|
|
@ -447,6 +447,8 @@ class InternalTests(unittest.TestCase): |
|
|
|
|
## Test --start/end-group |
|
|
|
|
linker = mesonbuild.linkers.GnuDynamicLinker([], MachineChoice.HOST, 'fake', '-Wl,') |
|
|
|
|
gcc = mesonbuild.compilers.GnuCCompiler([], 'fake', mesonbuild.compilers.CompilerType.GCC_STANDARD, False, MachineChoice.HOST, linker=linker) |
|
|
|
|
## Ensure that the fake compiler is never called by overriding the relevant function |
|
|
|
|
gcc.get_default_include_dirs = lambda: ['/usr/include', '/usr/share/include', '/usr/local/include'] |
|
|
|
|
## Test that 'direct' append and extend works |
|
|
|
|
l = cargsfunc(gcc, ['-Lfoodir', '-lfoo']) |
|
|
|
|
self.assertEqual(l.to_native(copy=True), ['-Lfoodir', '-Wl,--start-group', '-lfoo', '-Wl,--end-group']) |
|
|
|
@ -469,6 +471,20 @@ class InternalTests(unittest.TestCase): |
|
|
|
|
l.append('-Wl,-ldl') |
|
|
|
|
self.assertEqual(l.to_native(copy=True), ['-Lfoo', '-Lfoodir', '-Wl,--start-group', '-lfoo', '-Lbardir', '-lbar', '-lbar', '/libbaz.a', '-Wl,--export-dynamic', '-Wl,-ldl', '-Wl,--end-group']) |
|
|
|
|
|
|
|
|
|
def test_compiler_args_remove_system(self): |
|
|
|
|
cargsfunc = mesonbuild.compilers.CompilerArgs |
|
|
|
|
## Test --start/end-group |
|
|
|
|
linker = mesonbuild.linkers.GnuDynamicLinker([], MachineChoice.HOST, 'fake', '-Wl,') |
|
|
|
|
gcc = mesonbuild.compilers.GnuCCompiler([], 'fake', mesonbuild.compilers.CompilerType.GCC_STANDARD, False, MachineChoice.HOST, linker=linker) |
|
|
|
|
## Ensure that the fake compiler is never called by overriding the relevant function |
|
|
|
|
gcc.get_default_include_dirs = lambda: ['/usr/include', '/usr/share/include', '/usr/local/include'] |
|
|
|
|
## Test that 'direct' append and extend works |
|
|
|
|
l = cargsfunc(gcc, ['-Lfoodir', '-lfoo']) |
|
|
|
|
self.assertEqual(l.to_native(copy=True), ['-Lfoodir', '-Wl,--start-group', '-lfoo', '-Wl,--end-group']) |
|
|
|
|
## Test that to_native removes all system includes |
|
|
|
|
l += ['-isystem/usr/include', '-isystem=/usr/share/include', '-DSOMETHING_IMPORTANT=1', '-isystem', '/usr/local/include'] |
|
|
|
|
self.assertEqual(l.to_native(copy=True), ['-Lfoodir', '-Wl,--start-group', '-lfoo', '-Wl,--end-group', '-DSOMETHING_IMPORTANT=1']) |
|
|
|
|
|
|
|
|
|
def test_string_templates_substitution(self): |
|
|
|
|
dictfunc = mesonbuild.mesonlib.get_filenames_templates_dict |
|
|
|
|
substfunc = mesonbuild.mesonlib.substitute_values |
|
|
|
|