diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-04-02 14:15:59 +0200 |
|---|---|---|
| committer | Jussi Pakkanen <jpakkane@gmail.com> | 2025-04-04 12:46:55 +0300 |
| commit | 47984f813450bcbcd102ed45d579011deb4572c1 (patch) | |
| tree | 1c32e2f598a88b13464f3a007dbe8074fe824f91 | |
| parent | 4ecf608936dbaf70fb1c4e807a82073162b56a45 (diff) | |
| download | meson-47984f813450bcbcd102ed45d579011deb4572c1.tar.gz | |
compilers: introduce get_option_std_args
Allow CUDA to completely override the -std arguments but not the rest.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| -rw-r--r-- | mesonbuild/backend/backends.py | 1 | ||||
| -rw-r--r-- | mesonbuild/backend/ninjabackend.py | 1 | ||||
| -rw-r--r-- | mesonbuild/backend/vs2010backend.py | 2 | ||||
| -rw-r--r-- | mesonbuild/backend/xcodebackend.py | 1 | ||||
| -rw-r--r-- | mesonbuild/compilers/compilers.py | 3 | ||||
| -rw-r--r-- | mesonbuild/interpreter/compiler.py | 1 |
6 files changed, 9 insertions, 0 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 8a7887837..20f7907a1 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -1024,6 +1024,7 @@ class Backend: # Add compile args for c_* or cpp_* build options set on the # command-line or default_options inside project(). commands += compiler.get_option_compile_args(target, self.environment, target.subproject) + commands += compiler.get_option_std_args(target, self.environment, target.subproject) optimization = self.get_target_option(target, 'optimization') assert isinstance(optimization, str), 'for mypy' diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 00cf4ad02..8cf459f7f 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1836,6 +1836,7 @@ class NinjaBackend(backends.Backend): args += cython.get_debug_args(self.get_target_option(target, 'debug')) args += cython.get_optimization_args(self.get_target_option(target, 'optimization')) args += cython.get_option_compile_args(target, self.environment, target.subproject) + args += cython.get_option_std_args(target, self.environment, target.subproject) args += self.build.get_global_args(cython, target.for_machine) args += self.build.get_project_args(cython, target.subproject, target.for_machine) args += target.get_extra_args('cython') diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py index 59ddb9c26..283f9f0a3 100644 --- a/mesonbuild/backend/vs2010backend.py +++ b/mesonbuild/backend/vs2010backend.py @@ -1000,6 +1000,8 @@ class Vs2010Backend(backends.Backend): target, comp, self.environment) file_args[l] += comp.get_option_compile_args( target, self.environment, target.subproject) + file_args[l] += comp.get_option_std_args( + target, self.environment, target.subproject) # Add compile args added using add_project_arguments() for l, args in self.build.projects_args[target.for_machine].get(target.subproject, {}).items(): diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py index e5c631fff..587404a01 100644 --- a/mesonbuild/backend/xcodebackend.py +++ b/mesonbuild/backend/xcodebackend.py @@ -1688,6 +1688,7 @@ class XCodeBackend(backends.Backend): # Start with warning args warn_args = compiler.get_warn_args(self.get_target_option(target, 'warning_level')) std_args = compiler.get_option_compile_args(target, self.environment, target.subproject) + std_args += compiler.get_option_std_args(target, self.environment, target.subproject) # Add compile args added using add_project_arguments() pargs = self.build.projects_args[target.for_machine].get(target.subproject, {}).get(lang, []) # Add compile args added using add_global_arguments() diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 3398aa4af..89eceab75 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -611,6 +611,9 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta): def get_option_compile_args(self, target: 'BuildTarget', env: 'Environment', subproject: T.Optional[str] = None) -> T.List[str]: return [] + def get_option_std_args(self, target: BuildTarget, env: Environment, subproject: T.Optional[str] = None) -> T.List[str]: + return [] + def get_option_link_args(self, target: 'BuildTarget', env: 'Environment', subproject: T.Optional[str] = None) -> T.List[str]: return self.linker.get_option_link_args(target, env, subproject) diff --git a/mesonbuild/interpreter/compiler.py b/mesonbuild/interpreter/compiler.py index 303af1240..8aeac8ac6 100644 --- a/mesonbuild/interpreter/compiler.py +++ b/mesonbuild/interpreter/compiler.py @@ -270,6 +270,7 @@ class CompilerHolder(ObjectHolder['Compiler']): args.extend(self.compiler.get_include_args(idir, False)) if not kwargs['no_builtin_args']: args += self.compiler.get_option_compile_args(None, self.interpreter.environment, self.subproject) + args += self.compiler.get_option_std_args(None, self.interpreter.environment, self.subproject) if mode is CompileCheckMode.LINK: args.extend(self.compiler.get_option_link_args(None, self.interpreter.environment, self.subproject)) if kwargs.get('werror', False): |
