diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2018-10-09 11:04:27 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2018-11-15 18:42:25 -0800 |
commit | 28fd725d61bec363d9bcc403e78b38312dfeb276 (patch) | |
tree | 9d0597bf4e553d3d67298522b6ed82bdd2e97458 /mesonbuild/compilers/compilers.py | |
parent | 21a7528b2fe3176445d918e921fe374acafb6de2 (diff) | |
download | meson-28fd725d61bec363d9bcc403e78b38312dfeb276.zip meson-28fd725d61bec363d9bcc403e78b38312dfeb276.tar.gz meson-28fd725d61bec363d9bcc403e78b38312dfeb276.tar.bz2 |
compilers: fix compiler.compile for Intel Compilers
has_arguments is the wrong thing to fix, since all checks that require
compiler options are based on compiles, it's the right thing to modify.
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r-- | mesonbuild/compilers/compilers.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index ca8c09c..306e5d6 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -19,7 +19,10 @@ from ..linkers import StaticLinker from .. import coredata from .. import mlog from .. import mesonlib -from ..mesonlib import EnvironmentException, MesonException, OrderedSet, version_compare, Popen_safe +from ..mesonlib import ( + EnvironmentException, MesonException, OrderedSet, version_compare, + Popen_safe +) """This file contains the data files of all compilers Meson knows about. To support a new compiler, add its information below. @@ -1733,6 +1736,7 @@ class ArmclangCompiler: # Tested on linux for ICC 14.0.3, 15.0.6, 16.0.4, 17.0.1, 19.0.0 class IntelCompiler(GnuLikeCompiler): + def __init__(self, compiler_type): super().__init__(compiler_type) # As of 19.0.0 ICC doesn't have sanitizer, color, or lto support. @@ -1764,9 +1768,16 @@ class IntelCompiler(GnuLikeCompiler): else: return ['-openmp'] - def has_arguments(self, args, env, code, mode): - # -diag-error 10148 is required to catch invalid -W options - return super().has_arguments(args + ['-diag-error', '10006', '-diag-error', '10148'], env, code, mode) + def compiles(self, *args, **kwargs): + # This covers a case that .get('foo', []) doesn't, that extra_args is + # defined and is None + extra_args = kwargs.get('extra_args') or [] + kwargs['extra_args'] = [ + extra_args, + '-diag-error', '10006', # ignoring unknown option + '-diag-error', '10148', # Option not supported + ] + return super().compiles(*args, **kwargs) class ArmCompiler: |