diff options
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r-- | mesonbuild/compilers/compilers.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index a8a7cd1..b06f6a5 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1234,18 +1234,21 @@ def get_global_options(lang: str, description = f'Extra arguments passed to the {lang}' argkey = OptionKey('args', lang=lang, machine=for_machine) largkey = argkey.evolve('link_args') + envkey = argkey.evolve('env_args') cargs = coredata.UserArrayOption( description + ' compiler', env.options.get(argkey, []), split_args=True, user_input=True, allow_dups=True) + # the compiler args always gets the environemtn variable arguments + cargs.extend_value(env.options.get(envkey, [])) + largs = coredata.UserArrayOption( description + ' linker', env.options.get(largkey, []), split_args=True, user_input=True, allow_dups=True) - - # This needs to be done here, so that if we have string values in the env - # options that we can safely combine them *after* they've been split + # The linker gets the compiler environment variable only if the comiler + # acts as the linker if comp.INVOKES_LINKER: - largs.set_value(largs.value + cargs.value) + largs.extend_value(env.options.get(envkey, [])) opts: 'KeyedOptionDictType' = {argkey: cargs, largkey: largs} |