aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-01-01 21:49:03 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2019-01-02 22:29:08 +0200
commit3a6e2aeed9737f1082571e868ba50e72957f27c7 (patch)
tree97368bca44cb2b517c8b0101fab566d9c5df9c7a /mesonbuild/interpreter.py
parent6c76ac80173bdc40d35e2d6b802f7950646781dc (diff)
downloadmeson-3a6e2aeed9737f1082571e868ba50e72957f27c7.zip
meson-3a6e2aeed9737f1082571e868ba50e72957f27c7.tar.gz
meson-3a6e2aeed9737f1082571e868ba50e72957f27c7.tar.bz2
Can use plain strings for include_directories.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 39d1b81..61481a4 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2209,7 +2209,7 @@ class Interpreter(InterpreterBase):
version = kwargs.get('version', self.project_version)
if not isinstance(version, str):
raise InterpreterException('Version must be a string.')
- incs = extract_as_list(kwargs, 'include_directories', unholder=True)
+ incs = self.entries_to_incdirs(extract_as_list(kwargs, 'include_directories', unholder=True))
libs = extract_as_list(kwargs, 'link_with', unholder=True)
libs_whole = extract_as_list(kwargs, 'link_whole', unholder=True)
sources = extract_as_list(kwargs, 'sources')
@@ -3708,6 +3708,19 @@ This will become a hard error in the future.''' % kwargs['input'])
self.build.data.append(build.Data([cfile], idir, install_mode))
return mesonlib.File.from_built_file(self.subdir, output)
+ def entries_to_incdirs(self, prospectives):
+ if not isinstance(prospectives, list):
+ return self.entries_to_incdirs([prospectives])[0]
+ result = []
+ for p in prospectives:
+ if isinstance(p, (IncludeDirsHolder, build.IncludeDirs)):
+ result.append(p)
+ elif isinstance(p, str):
+ result.append(self.build_incdir_object([p]))
+ else:
+ raise InterpreterException('Include directory objects can only be created from strings or include directories.')
+ return result
+
@permittedKwargs(permitted_kwargs['include_directories'])
@stringArgs
def func_include_directories(self, node, args, kwargs):
@@ -4069,6 +4082,8 @@ Try setting b_lundef to false instead.'''.format(self.coredata.base_options['b_s
# passed to library() when default_library == 'static'.
kwargs = {k: v for k, v in kwargs.items() if k in targetclass.known_kwargs}
+ if 'include_directories' in kwargs:
+ kwargs['include_directories'] = self.entries_to_incdirs(kwargs['include_directories'])
target = targetclass(name, self.subdir, self.subproject, is_cross, sources, objs, self.environment, kwargs)
if is_cross: