diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2021-11-14 09:00:10 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2021-11-15 11:33:00 +0100 |
commit | 9a8c2d23f1591aa941294d72a95f8857ac84356a (patch) | |
tree | b691226917916b7be5069bdef264c2c98cbd3c38 /mesonbuild/interpreter/mesonmain.py | |
parent | 36c390e08ebde7e8d5cf53a8c97ec5fe33c8537a (diff) | |
download | meson-9a8c2d23f1591aa941294d72a95f8857ac84356a.zip meson-9a8c2d23f1591aa941294d72a95f8857ac84356a.tar.gz meson-9a8c2d23f1591aa941294d72a95f8857ac84356a.tar.bz2 |
interpreter: disallow RunTarget in meson.add_install_script
Without this patch, the name of the RunTarget is passed to the
install script; for the enclosed test, meson setup (incorrectly)
succeeds, but installation fails.
Diffstat (limited to 'mesonbuild/interpreter/mesonmain.py')
-rw-r--r-- | mesonbuild/interpreter/mesonmain.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/mesonbuild/interpreter/mesonmain.py b/mesonbuild/interpreter/mesonmain.py index d030f24..adc342f 100644 --- a/mesonbuild/interpreter/mesonmain.py +++ b/mesonbuild/interpreter/mesonmain.py @@ -95,9 +95,9 @@ class MesonMain(MesonInterpreterObject): def _process_script_args( self, name: str, args: T.Sequence[T.Union[ - str, mesonlib.File, build.Target, + str, mesonlib.File, build.BuildTarget, build.CustomTarget, build.CustomTargetIndex, - ExternalProgram, build.Executable, + ExternalProgram, ]], allow_built: bool = False) -> T.List[str]: script_args = [] # T.List[str] new = False @@ -107,7 +107,7 @@ class MesonMain(MesonInterpreterObject): elif isinstance(a, mesonlib.File): new = True script_args.append(a.rel_to_builddir(self.interpreter.environment.source_dir)) - elif isinstance(a, (build.Target, build.CustomTargetIndex)): + elif isinstance(a, (build.BuildTarget, build.CustomTarget, build.CustomTargetIndex)): if not allow_built: raise InterpreterException(f'Arguments to {name} cannot be built') new = True @@ -135,7 +135,7 @@ class MesonMain(MesonInterpreterObject): @typed_pos_args( 'meson.add_install_script', (str, mesonlib.File, build.Executable, ExternalProgram), - varargs=(str, mesonlib.File, build.Target, build.CustomTargetIndex, ExternalProgram) + varargs=(str, mesonlib.File, build.BuildTarget, build.CustomTarget, build.CustomTargetIndex, ExternalProgram) ) @typed_kwargs( 'meson.add_install_script', @@ -145,7 +145,7 @@ class MesonMain(MesonInterpreterObject): def add_install_script_method( self, args: T.Tuple[T.Union[str, mesonlib.File, build.Executable, ExternalProgram], - T.List[T.Union[str, mesonlib.File, build.Target, build.CustomTargetIndex, ExternalProgram]]], + T.List[T.Union[str, mesonlib.File, build.BuildTarget, build.CustomTarget, build.CustomTargetIndex, ExternalProgram]]], kwargs: 'AddInstallScriptKW') -> None: if isinstance(args[0], mesonlib.File): FeatureNew.single_use('Passing file object to script parameter of add_install_script', |