diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-05-04 11:24:11 -0700 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-05-19 23:28:17 +0300 |
commit | 7bd7d1cd732c33c3cb301ba62bf46f00ac8d8a1b (patch) | |
tree | cfe7d81fcf31fb44755ec1ff22f7478508cb27e8 /mesonbuild/interpreter/interpreter.py | |
parent | f2ae92368a384cb3cc310f40c2cb43dec5979912 (diff) | |
download | meson-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.py | 22 |
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): |