From 937d1c639a9a83e0671e7e4cd3686ca3e8c9566b Mon Sep 17 00:00:00 2001 From: David Seifert Date: Tue, 27 Feb 2024 12:52:10 +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 2ea5d9f24..0e2d94578 100644 --- a/mesonbuild/compilers/cuda.py +++ b/mesonbuild/compilers/cuda.py @@ -192,7 +192,13 @@ class CudaCompiler(Compiler): 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 compilation 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(list(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: