aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-09-24 22:51:30 +0200
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-10-03 10:06:03 +0200
commitc6938bd57997c6e5af57d0a58a6753f0ef4ca1d6 (patch)
tree9f278d816f5d131e553bed965cc7b1ba74c2047b
parent8593506b7ba73e3025d7f94c4ea793af94a10e51 (diff)
downloadmeson-c6938bd57997c6e5af57d0a58a6753f0ef4ca1d6.zip
meson-c6938bd57997c6e5af57d0a58a6753f0ef4ca1d6.tar.gz
meson-c6938bd57997c6e5af57d0a58a6753f0ef4ca1d6.tar.bz2
Handle -idirafter in unix_args_to_native
-rw-r--r--mesonbuild/compilers/d.py9
-rw-r--r--mesonbuild/compilers/mixins/visualstudio.py12
-rw-r--r--mesonbuild/dependencies/base.py2
3 files changed, 21 insertions, 2 deletions
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py
index 5e0c173..346f18e 100644
--- a/mesonbuild/compilers/d.py
+++ b/mesonbuild/compilers/d.py
@@ -285,7 +285,14 @@ class DmdLikeCompilerMixin:
if arg.startswith('-isystem='):
dcargs.append('-I=' + arg[9:])
else:
- dcargs.append('-I')
+ dcargs.append('-I' + arg[8:])
+ continue
+ elif arg.startswith('-idirafter'):
+ # same as -isystem, but appends the path instead
+ if arg.startswith('-idirafter='):
+ dcargs.append('-I=' + arg[11:])
+ else:
+ dcargs.append('-I' + arg[10:])
continue
elif arg.startswith('-L/') or arg.startswith('-L./'):
# we need to handle cases where -L is set by e.g. a pkg-config
diff --git a/mesonbuild/compilers/mixins/visualstudio.py b/mesonbuild/compilers/mixins/visualstudio.py
index 48a2229..9fddbb4 100644
--- a/mesonbuild/compilers/mixins/visualstudio.py
+++ b/mesonbuild/compilers/mixins/visualstudio.py
@@ -228,6 +228,18 @@ class VisualStudioLikeCompiler(metaclass=abc.ABCMeta):
continue
else:
i = name + '.lib'
+ elif i.startswith('-isystem'):
+ # just use /I for -isystem system include path s
+ if i.startswith('-isystem='):
+ i = '/I' + i[9:]
+ else:
+ i = '/I' + i[8:]
+ elif i.startswith('-idirafter'):
+ # same as -isystem, but appends the path instead
+ if i.startswith('-idirafter='):
+ i = '/I' + i[11:]
+ else:
+ i = '/I' + i[10:]
# -pthread in link flags is only used on Linux
elif i == '-pthread':
continue
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
index e5cb4bf..cbf9c44 100644
--- a/mesonbuild/dependencies/base.py
+++ b/mesonbuild/dependencies/base.py
@@ -105,7 +105,7 @@ class Dependency:
return methods
@classmethod
- def _process_is_system_kw(cls, kwargs):
+ def _process_is_system_kw(cls, kwargs):
if 'is_system' not in kwargs:
return False
if not isinstance(kwargs['is_system'], bool):