diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-07-31 11:35:25 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-08-05 00:26:13 +0300 |
commit | 61a05f26e391d2381414dd9bf8dd3c9e69ad732b (patch) | |
tree | e124ace883a9a54d5ff3b183ea94c372345bc2f3 /mesonbuild | |
parent | a800c96f99485341f52c6dacf60a2b63aa1c0b1a (diff) | |
download | meson-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.py | 6 | ||||
-rw-r--r-- | mesonbuild/backend/vs2010backend.py | 10 | ||||
-rw-r--r-- | mesonbuild/build.py | 4 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 1 |
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', |