diff options
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r-- | mesonbuild/compilers/c.py | 7 | ||||
-rw-r--r-- | mesonbuild/compilers/compilers.py | 20 |
2 files changed, 13 insertions, 14 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py index 4294bb1..2560c82 100644 --- a/mesonbuild/compilers/c.py +++ b/mesonbuild/compilers/c.py @@ -422,11 +422,8 @@ class CCompiler(Compiler): for_machine = MachineChoice.BUILD else: for_machine = MachineChoice.HOST - if mode == 'preprocess': - # Add CPPFLAGS from the env. - args += env.coredata.get_external_preprocess_args(for_machine, self.language) - elif mode == 'compile': - # Add CFLAGS/CXXFLAGS/OBJCFLAGS/OBJCXXFLAGS from the env + if mode in {'compile', 'preprocess'}: + # Add CFLAGS/CXXFLAGS/OBJCFLAGS/OBJCXXFLAGS and CPPFLAGS from the env sys_args = env.coredata.get_external_args(for_machine, self.language) # Apparently it is a thing to inject linker flags both # via CFLAGS _and_ LDFLAGS, even though the former are diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 66195dc..d93a542 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -970,10 +970,11 @@ class Compiler: """ return [] - def get_preproc_flags(self): - if self.get_language() in ('c', 'cpp', 'objc', 'objcpp'): - return os.environ.get('CPPFLAGS', '') - return '' + def use_preproc_flags(self): + """ + Whether the compiler (or processes it spawns) cares about CPPFLAGS + """ + return self.get_language() in ('c', 'cpp', 'objc', 'objcpp') def get_args_from_envvars(self): """ @@ -1007,11 +1008,12 @@ class Compiler: # this when the linker is stand-alone such as with MSVC C/C++, etc. link_flags = compile_flags + link_flags - # Pre-processor flags (not for fortran or D) - preproc_flags = self.get_preproc_flags() - log_var('CPPFLAGS', preproc_flags) - preproc_flags = shlex.split(preproc_flags) - compile_flags += preproc_flags + # Pre-processor flags for certain languages + if self.use_preproc_flags(): + preproc_flags = os.environ.get('CPPFLAGS', '') + log_var('CPPFLAGS', preproc_flags) + preproc_flags = shlex.split(preproc_flags) + compile_flags += preproc_flags return compile_flags, link_flags |