diff options
| author | Charles Brunet <charles.brunet@optelgroup.com> | 2024-01-09 20:37:15 -0500 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2024-01-25 11:06:56 -0800 |
| commit | d7bf365acdadf6bb5a456bbe405132cd17c3e5af (patch) | |
| tree | 0b8a8c506ab0dcca83cd914e15fe22ecffd526ed /mesonbuild | |
| parent | a9f9f034905459bed628d886c3315ded162a9789 (diff) | |
| download | meson-d7bf365acdadf6bb5a456bbe405132cd17c3e5af.tar.gz | |
Fix compiler.preprocess compile_args not used
As described in
https://github.com/mesonbuild/meson/issues/12715#issuecomment-1883448780,
the compiler.preprocess function ignores compile_args. This should fix
it in both ninja and visualstudio backends.
Diffstat (limited to 'mesonbuild')
| -rw-r--r-- | mesonbuild/backend/backends.py | 3 | ||||
| -rw-r--r-- | mesonbuild/build.py | 2 | ||||
| -rw-r--r-- | mesonbuild/interpreter/compiler.py | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index e8eaa5e61..441a1eca5 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -2029,6 +2029,9 @@ class Backend: commands += compiler.get_compile_only_args() + ['@INPUT@'] commands += self.get_source_dir_include_args(target, compiler) commands += self.get_build_dir_include_args(target, compiler) + # Add per-target compile args, f.ex, `c_args : ['-DFOO']`. We set these + # near the end since these are supposed to override everything else. + commands += self.escape_extra_args(target.get_extra_args(compiler.get_language())) generator = build.Generator(exe, args + commands.to_native(), [output_templ], depfile='@PLAINNAME@.d', depends=depends) diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 324721798..934e7c1f0 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -2768,7 +2768,7 @@ class CompileTarget(BuildTarget): compilers = {compiler.get_language(): compiler} kwargs = { 'build_by_default': False, - f'{compiler.language}_args': compile_args, + 'language_args': {compiler.language: compile_args}, 'include_directories': include_directories, 'dependencies': dependencies, } diff --git a/mesonbuild/interpreter/compiler.py b/mesonbuild/interpreter/compiler.py index f31952867..0cd6aecf3 100644 --- a/mesonbuild/interpreter/compiler.py +++ b/mesonbuild/interpreter/compiler.py @@ -18,7 +18,7 @@ from .. import mlog from ..compilers import SUFFIX_TO_LANG from ..compilers.compilers import CompileCheckMode from ..interpreterbase import (ObjectHolder, noPosargs, noKwargs, - FeatureNew, disablerIfNotFound, + FeatureNew, FeatureNewKwargs, disablerIfNotFound, InterpreterException) from ..interpreterbase.decorators import ContainerTypeInfo, typed_kwargs, KwargInfo, typed_pos_args from ..mesonlib import OptionKey @@ -853,6 +853,7 @@ class CompilerHolder(ObjectHolder['Compiler']): return self.compiler.get_argument_syntax() @FeatureNew('compiler.preprocess', '0.64.0') + @FeatureNewKwargs('compiler.preprocess', '1.3.2', ['compile_args'], extra_message='compile_args were ignored before this version') @typed_pos_args('compiler.preprocess', varargs=(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList), min_varargs=1) @typed_kwargs( 'compiler.preprocess', |
