aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-07-31 11:35:25 -0400
committerJussi Pakkanen <jpakkane@gmail.com>2017-08-05 00:26:13 +0300
commit61a05f26e391d2381414dd9bf8dd3c9e69ad732b (patch)
treee124ace883a9a54d5ff3b183ea94c372345bc2f3 /mesonbuild
parenta800c96f99485341f52c6dacf60a2b63aa1c0b1a (diff)
downloadmeson-61a05f26e391d2381414dd9bf8dd3c9e69ad732b.zip
meson-61a05f26e391d2381414dd9bf8dd3c9e69ad732b.tar.gz
meson-61a05f26e391d2381414dd9bf8dd3c9e69ad732b.tar.bz2
Add option to disable implicit include directories. Closes #2139.
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/backend/ninjabackend.py6
-rw-r--r--mesonbuild/backend/vs2010backend.py10
-rw-r--r--mesonbuild/build.py4
-rw-r--r--mesonbuild/interpreter.py1
4 files changed, 16 insertions, 5 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index f477a2b..2b292b1 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -2046,9 +2046,11 @@ rule FORTRAN_DEP_HACK
# srcdir == builddir Autotools build in their source tree. Many
# projects that are moving to Meson have both Meson and Autotools in
# parallel as part of the transition.
- commands += self.get_source_dir_include_args(target, compiler)
+ if target.implicit_include_directories:
+ commands += self.get_source_dir_include_args(target, compiler)
commands += self.get_custom_target_dir_include_args(target, compiler)
- commands += self.get_build_dir_include_args(target, compiler)
+ if target.implicit_include_directories:
+ commands += self.get_build_dir_include_args(target, compiler)
# Finally add the private dir for the target to the include path. This
# must override everything else and must be the final path added.
commands += compiler.get_include_args(self.get_target_private_dir(target), False)
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index 4a92155..28c0f76 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -793,9 +793,13 @@ class Vs2010Backend(backends.Backend):
# target private dir, target build dir, generated sources include dirs,
# target source dir
for args in file_args.values():
- t_inc_dirs = ['.', self.relpath(self.get_target_private_dir(target),
- self.get_target_dir(target))]
- t_inc_dirs += generated_files_include_dirs + [proj_to_src_dir]
+ t_inc_dirs = [self.relpath(self.get_target_private_dir(target),
+ self.get_target_dir(target))]
+ if target.implicit_include_directories:
+ t_inc_dirs += ['.']
+ t_inc_dirs += generated_files_include_dirs
+ if target.implicit_include_directories:
+ t_inc_dirs += [proj_to_src_dir]
args += ['-I' + arg for arg in t_inc_dirs]
# Split preprocessor defines and include directories out of the list of
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 94f177a..89689d7 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -42,6 +42,7 @@ known_basic_kwargs = {'install': True,
'link_depends': True,
'link_with': True,
'link_whole': True,
+ 'implicit_include_directories': True,
'include_directories': True,
'dependencies': True,
'install_dir': True,
@@ -761,6 +762,9 @@ This will become a hard error in a future Meson release.''')
self.pic = kwargs.get('pic', False)
if not isinstance(self.pic, bool):
raise InvalidArguments('Argument pic to static library {!r} must be boolean'.format(self.name))
+ self.implicit_include_directories = kwargs.get('implicit_include_directories', True)
+ if not isinstance(self.implicit_include_directories, bool):
+ raise InvalidArguments('Implicit_include_directories must be a boolean.')
def get_filename(self):
return self.filename
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 16bf9ac..2c1f8f1 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -1243,6 +1243,7 @@ buildtarget_kwargs = set(['build_by_default',
'link_whole',
'link_args',
'link_depends',
+ 'implicit_include_directories',
'include_directories',
'install',
'install_rpath',