From 435d36500a0c12a8dc946eb4676b1f925b023797 Mon Sep 17 00:00:00 2001 From: David Seifert Date: Tue, 27 Feb 2024 11:54:01 +0100 Subject: [PATCH] nvcc: avoid adding `-Wpedantic` to compile lines * `-Wpedantic` creates useless churn due to its use of gcc-line directives: ../foo.cu:1:3: warning: style of line directive is a GCC extension 1 | namespace Foo { | ^~ https://stackoverflow.com/a/31001220 --- mesonbuild/compilers/cuda.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py index 2ea5d9f245b8..56a55739943f 100644 --- a/mesonbuild/compilers/cuda.py +++ b/mesonbuild/compilers/cuda.py @@ -192,7 +192,13 @@ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_ self.exe_wrapper = exe_wrapper self.host_compiler = host_compiler self.base_options = host_compiler.base_options - self.warn_args = {level: self._to_host_flags(flags) for level, flags in host_compiler.warn_args.items()} + # -Wpedantic generates useless churn due to nvcc's dual compilaton model producing + # a temporary host C++ file that includes gcc-style line directives: + # https://stackoverflow.com/a/31001220 + self.warn_args = { + level: self._to_host_flags(f for f in flags if f != '-Wpedantic') + for level, flags in host_compiler.warn_args.items() + } @classmethod def _shield_nvcc_list_arg(cls, arg: str, listmode: bool = True) -> str: