@ -32,11 +32,12 @@ import mesonbuild.mlog
import mesonbuild . depfile
import mesonbuild . dependencies . base
import mesonbuild . dependencies . factory
import mesonbuild . compilers
import mesonbuild . envconfig
import mesonbuild . environment
import mesonbuild . modules . gnome
from mesonbuild import coredata
from mesonbuild . compilers . c import ClangCCompiler , GnuCCompiler
from mesonbuild . compilers . d import DmdDCompiler
from mesonbuild . interpreterbase import typed_pos_args , InvalidArguments , ObjectHolder
from mesonbuild . interpreterbase import typed_pos_args , InvalidArguments , typed_kwargs , ContainerTypeInfo , KwargInfo
from mesonbuild . mesonlib import (
@ -116,7 +117,7 @@ class InternalTests(unittest.TestCase):
stat . S_IRGRP | stat . S_IXGRP )
def test_compiler_args_class_none_flush ( self ) :
cc = mesonbuild . compilers . ClangCCompiler ( [ ] , ' fake ' , MachineChoice . HOST , False , mock . Mock ( ) )
cc = ClangCCompiler ( [ ] , ' fake ' , MachineChoice . HOST , False , mock . Mock ( ) )
a = cc . compiler_args ( [ ' -I. ' ] )
#first we are checking if the tree construction deduplicates the correct -I argument
a + = [ ' -I.. ' ]
@ -133,14 +134,14 @@ class InternalTests(unittest.TestCase):
self . assertEqual ( a , [ ' -I. ' , ' -I./tests2/ ' , ' -I./tests/ ' , ' -I.. ' ] )
def test_compiler_args_class_d ( self ) :
d = mesonbuild . compilers . DmdDCompiler ( [ ] , ' fake ' , MachineChoice . HOST , ' info ' , ' arch ' )
d = DmdDCompiler ( [ ] , ' fake ' , MachineChoice . HOST , ' info ' , ' arch ' )
# check include order is kept when deduplicating
a = d . compiler_args ( [ ' -Ifirst ' , ' -Isecond ' , ' -Ithird ' ] )
a + = [ ' -Ifirst ' ]
self . assertEqual ( a , [ ' -Ifirst ' , ' -Isecond ' , ' -Ithird ' ] )
def test_compiler_args_class_clike ( self ) :
cc = mesonbuild . compilers . ClangCCompiler ( [ ] , ' fake ' , MachineChoice . HOST , False , mock . Mock ( ) )
cc = ClangCCompiler ( [ ] , ' fake ' , MachineChoice . HOST , False , mock . Mock ( ) )
# Test that empty initialization works
a = cc . compiler_args ( )
self . assertEqual ( a , [ ] )
@ -222,7 +223,7 @@ class InternalTests(unittest.TestCase):
def test_compiler_args_class_gnuld ( self ) :
## Test --start/end-group
linker = mesonbuild . linkers . GnuBFDDynamicLinker ( [ ] , MachineChoice . HOST , ' -Wl, ' , [ ] )
gcc = mesonbuild . compilers . GnuCCompiler ( [ ] , ' fake ' , False , MachineChoice . HOST , mock . Mock ( ) , linker = linker )
gcc = GnuCCompiler ( [ ] , ' fake ' , False , MachineChoice . HOST , mock . Mock ( ) , 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
@ -250,7 +251,7 @@ class InternalTests(unittest.TestCase):
def test_compiler_args_remove_system ( self ) :
## Test --start/end-group
linker = mesonbuild . linkers . GnuBFDDynamicLinker ( [ ] , MachineChoice . HOST , ' -Wl, ' , [ ] )
gcc = mesonbuild . compilers . GnuCCompiler ( [ ] , ' fake ' , False , MachineChoice . HOST , mock . Mock ( ) , linker = linker )
gcc = GnuCCompiler ( [ ] , ' fake ' , False , MachineChoice . HOST , mock . Mock ( ) , 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