aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/interpreter.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-05-04 11:24:11 -0700
committerJussi Pakkanen <jpakkane@gmail.com>2021-05-19 23:28:17 +0300
commit7bd7d1cd732c33c3cb301ba62bf46f00ac8d8a1b (patch)
treecfe7d81fcf31fb44755ec1ff22f7478508cb27e8 /mesonbuild/interpreter/interpreter.py
parentf2ae92368a384cb3cc310f40c2cb43dec5979912 (diff)
downloadmeson-7bd7d1cd732c33c3cb301ba62bf46f00ac8d8a1b.zip
meson-7bd7d1cd732c33c3cb301ba62bf46f00ac8d8a1b.tar.gz
meson-7bd7d1cd732c33c3cb301ba62bf46f00ac8d8a1b.tar.bz2
interpreter: Pass unholdered sources into BuildTarget
The build level shouldn't be deal with interpreter objects, by the time they leave the intpreter they should be in the Meson middle layer representaiton
Diffstat (limited to 'mesonbuild/interpreter/interpreter.py')
-rw-r--r--mesonbuild/interpreter/interpreter.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 891f67e..484db78 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -68,8 +68,9 @@ if T.TYPE_CHECKING:
SourceInputs = T.Union[mesonlib.File, GeneratedListHolder, TargetHolder,
CustomTargetIndexHolder, GeneratedObjectsHolder, str]
# Input source types passed to the build.Target5 classes
- SourceOutputs = T.Union[mesonlib.File, GeneratedListHolder, TargetHolder,
- CustomTargetIndexHolder, GeneratedObjectsHolder]
+ SourceOutputs = T.Union[mesonlib.File, build.GeneratedList,
+ build.BuildTarget, build.CustomTargetIndex,
+ build.GeneratedList]
def stringifyUserArguments(args, quote=False):
if isinstance(args, list):
@@ -2705,13 +2706,16 @@ Try setting b_lundef to false instead.'''.format(self.coredata.options[OptionKey
for s in sources:
if isinstance(s, str):
self.validate_within_subproject(self.subdir, s)
- s = mesonlib.File.from_source_file(self.environment.source_dir, self.subdir, s)
- elif not isinstance(s, (mesonlib.File, GeneratedListHolder,
- TargetHolder, CustomTargetIndexHolder,
- GeneratedObjectsHolder)):
- raise InterpreterException('Source item is {!r} instead of '
- 'string or File-type object'.format(s))
- results.append(s)
+ results.append(mesonlib.File.from_source_file(self.environment.source_dir, self.subdir, s))
+ elif isinstance(s, mesonlib.File):
+ results.append(s)
+ elif isinstance(s, (GeneratedListHolder, TargetHolder,
+ CustomTargetIndexHolder,
+ GeneratedObjectsHolder)):
+ results.append(unholder(s))
+ else:
+ raise InterpreterException(f'Source item is {s!r} instead of '
+ 'string or File-type object')
return results
def add_target(self, name, tobj):