diff options
Diffstat (limited to 'mesonbuild')
| -rw-r--r-- | mesonbuild/build.py | 14 | ||||
| -rw-r--r-- | mesonbuild/interpreter/interpreter.py | 18 | ||||
| -rw-r--r-- | mesonbuild/interpreter/interpreterobjects.py | 42 | ||||
| -rw-r--r-- | mesonbuild/interpreter/mesonmain.py | 7 | ||||
| -rw-r--r-- | mesonbuild/modules/__init__.py | 5 | ||||
| -rw-r--r-- | mesonbuild/modules/_qt.py | 12 | ||||
| -rw-r--r-- | mesonbuild/modules/dlang.py | 5 | ||||
| -rw-r--r-- | mesonbuild/modules/gnome.py | 7 | ||||
| -rw-r--r-- | mesonbuild/modules/i18n.py | 2 | ||||
| -rw-r--r-- | mesonbuild/modules/icestorm.py | 2 | ||||
| -rw-r--r-- | mesonbuild/modules/python.py | 6 | ||||
| -rw-r--r-- | mesonbuild/modules/rust.py | 3 | ||||
| -rw-r--r-- | mesonbuild/modules/wayland.py | 3 | ||||
| -rw-r--r-- | mesonbuild/programs.py | 11 |
14 files changed, 46 insertions, 91 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 88666e9a9..3fee807d4 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -292,7 +292,7 @@ class Build: self.stdlibs = PerMachine({}, {}) self.test_setups: T.Dict[str, TestSetup] = {} self.test_setup_default_name = None - self.find_overrides: T.Dict[str, T.Union[OverrideExecutable, programs.ExternalProgram, programs.OverrideProgram, LocalProgram]] = {} + self.find_overrides: T.Dict[str, T.Union[programs.ExternalProgram, LocalProgram]] = {} self.searched_programs: T.Set[str] = set() # The list of all programs that have been searched for. # If we are doing a cross build we need two caches, if we're doing a @@ -3353,18 +3353,6 @@ class ConfigurationData(HoldableObject): def keys(self) -> T.Iterator[str]: return self.values.keys() -class OverrideExecutable(Executable): - def __init__(self, executable: Executable, version: str): - self._executable = executable - self._version = version - - def __getattr__(self, name: str) -> T.Any: - _executable = object.__getattribute__(self, '_executable') - return getattr(_executable, name) - - def get_version(self, interpreter: T.Optional[Interpreter] = None) -> str: - return self._version - class LocalProgram(HoldableObject): ''' A wrapper for a program that may have build dependencies.''' def __init__(self, program: T.Union[programs.ExternalProgram, Executable, CustomTarget, CustomTargetIndex], version: str, diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index 62922c2b3..552e1331b 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -118,7 +118,6 @@ if T.TYPE_CHECKING: from ..backend.backends import Backend from ..interpreterbase.baseobjects import InterpreterObject, TYPE_var, TYPE_kwargs from ..options import OptionDict - from ..programs import OverrideProgram from .type_checking import SourcesVarargsType # Input source types passed to Targets @@ -130,7 +129,7 @@ if T.TYPE_CHECKING: BuildTargetSource = T.Union[mesonlib.FileOrString, build.GeneratedTypes, build.StructuredSources] - ProgramVersionFunc = T.Callable[[T.Union[ExternalProgram, build.Executable, OverrideProgram]], str] + ProgramVersionFunc = T.Callable[[T.Union[ExternalProgram, build.LocalProgram]], str] TestClass = T.TypeVar('TestClass', bound=Test) @@ -441,7 +440,6 @@ class Interpreter(InterpreterBase, HoldableObject): build.Generator: OBJ.GeneratorHolder, build.GeneratedList: OBJ.GeneratedListHolder, build.ExtractedObjects: OBJ.GeneratedObjectsHolder, - build.OverrideExecutable: OBJ.OverrideExecutableHolder, build.LocalProgram: OBJ.LocalProgramHolder, build.RunTarget: OBJ.RunTargetHolder, build.AliasTarget: OBJ.AliasTargetHolder, @@ -1623,7 +1621,7 @@ class Interpreter(InterpreterBase, HoldableObject): def program_from_overrides(self, command_names: T.List[mesonlib.FileOrString], extra_info: T.List['mlog.TV_Loggable'] - ) -> T.Optional[T.Union[ExternalProgram, OverrideProgram, build.OverrideExecutable, build.LocalProgram]]: + ) -> T.Optional[T.Union[ExternalProgram, build.LocalProgram]]: for name in command_names: if not isinstance(name, str): continue @@ -1638,7 +1636,7 @@ class Interpreter(InterpreterBase, HoldableObject): if isinstance(name, str): self.build.searched_programs.add(name) - def add_find_program_override(self, name: str, exe: T.Union[build.OverrideExecutable, ExternalProgram, OverrideProgram, build.LocalProgram]) -> None: + def add_find_program_override(self, name: str, exe: T.Union[ExternalProgram, build.LocalProgram]) -> None: if name in self.build.searched_programs: raise InterpreterException(f'Tried to override finding of executable "{name}" which has already been found.') if name in self.build.find_overrides: @@ -1663,7 +1661,7 @@ class Interpreter(InterpreterBase, HoldableObject): search_dirs: T.Optional[T.List[str]] = None, version_arg: T.Optional[str] = '', version_func: T.Optional[ProgramVersionFunc] = None - ) -> T.Union[ExternalProgram, build.OverrideExecutable, OverrideProgram, build.LocalProgram]: + ) -> T.Union[ExternalProgram, build.LocalProgram]: args = mesonlib.listify(args) extra_info: T.List[mlog.TV_Loggable] = [] @@ -1695,7 +1693,7 @@ class Interpreter(InterpreterBase, HoldableObject): version_arg: T.Optional[str], version_func: T.Optional[ProgramVersionFunc], extra_info: T.List[mlog.TV_Loggable] - ) -> T.Optional[T.Union[ExternalProgram, build.Executable, OverrideProgram, build.LocalProgram]]: + ) -> T.Optional[T.Union[ExternalProgram, build.LocalProgram]]: progobj = self.program_from_overrides(args, extra_info) if progobj: return progobj @@ -1731,7 +1729,7 @@ class Interpreter(InterpreterBase, HoldableObject): return progobj - def check_program_version(self, progobj: T.Union[ExternalProgram, build.Executable, OverrideProgram, build.LocalProgram], + def check_program_version(self, progobj: T.Union[ExternalProgram, build.LocalProgram], wanted: T.Union[str, T.List[str]], version_func: T.Optional[ProgramVersionFunc], extra_info: T.List[mlog.TV_Loggable]) -> bool: @@ -1758,7 +1756,7 @@ class Interpreter(InterpreterBase, HoldableObject): def find_program_fallback(self, fallback: str, args: T.List[mesonlib.FileOrString], default_options: OptionDict, required: bool, extra_info: T.List[mlog.TV_Loggable] - ) -> T.Optional[T.Union[ExternalProgram, build.Executable, OverrideProgram]]: + ) -> T.Optional[T.Union[ExternalProgram, build.LocalProgram]]: mlog.log('Fallback to subproject', mlog.bold(fallback), 'which provides program', mlog.bold(' '.join(args))) sp_kwargs: kwtypes.DoSubproject = { @@ -1785,7 +1783,7 @@ class Interpreter(InterpreterBase, HoldableObject): @disablerIfNotFound def func_find_program(self, node: mparser.BaseNode, args: T.Tuple[T.List[mesonlib.FileOrString]], kwargs: 'kwtypes.FindProgram', - ) -> T.Union['build.Executable', ExternalProgram, 'OverrideProgram']: + ) -> T.Union[ExternalProgram, build.LocalProgram]: disabled, required, feature = extract_required_kwarg(kwargs, self.subproject) if disabled: assert feature, 'for mypy' diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py index 82d0a75df..431086669 100644 --- a/mesonbuild/interpreter/interpreterobjects.py +++ b/mesonbuild/interpreter/interpreterobjects.py @@ -605,10 +605,10 @@ class DependencyHolder(ObjectHolder[Dependency]): raise InterpreterException('as_shared method is only supported on declare_dependency() objects') return self.held_object.get_as_shared(kwargs['recursive']) -_EXTPROG = T.TypeVar('_EXTPROG', bound=ExternalProgram) +_BASEPROG = T.TypeVar('_BASEPROG', bound=T.Union[ExternalProgram, build.LocalProgram]) -class _ExternalProgramHolder(ObjectHolder[_EXTPROG]): - def __init__(self, ep: _EXTPROG, interpreter: 'Interpreter') -> None: +class _BaseProgramHolder(ObjectHolder[_BASEPROG]): + def __init__(self, ep: _BASEPROG, interpreter: 'Interpreter') -> None: super().__init__(ep, interpreter) @noPosargs @@ -619,15 +619,15 @@ class _ExternalProgramHolder(ObjectHolder[_EXTPROG]): @noPosargs @noKwargs - @FeatureDeprecated('ExternalProgram.path', '0.55.0', - 'use ExternalProgram.full_path() instead') + @FeatureDeprecated('Program.path', '0.55.0', + 'use Program.full_path() instead') @InterpreterObject.method('path') def path_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> str: return self._full_path() @noPosargs @noKwargs - @FeatureNew('ExternalProgram.full_path', '0.55.0') + @FeatureNew('Program.full_path', '0.55.0') @InterpreterObject.method('full_path') def full_path_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> str: return self._full_path() @@ -641,9 +641,11 @@ class _ExternalProgramHolder(ObjectHolder[_EXTPROG]): @noPosargs @noKwargs - @FeatureNew('ExternalProgram.version', '0.62.0') + @FeatureNew('Program.version', '0.62.0') @InterpreterObject.method('version') def version_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> str: + if isinstance(self.held_object, build.LocalProgram) and isinstance(self.held_object.program, build.Executable): + FeatureNew.single_use('Program.version with an executable', '1.9.0', subproject=self.subproject, location=self.current_node) if not self.found(): raise InterpreterException('Unable to get the version of a not-found external program') try: @@ -654,7 +656,10 @@ class _ExternalProgramHolder(ObjectHolder[_EXTPROG]): def found(self) -> bool: return self.held_object.found() -class ExternalProgramHolder(_ExternalProgramHolder[ExternalProgram]): +class ExternalProgramHolder(_BaseProgramHolder[ExternalProgram]): + pass + +class LocalProgramHolder(_BaseProgramHolder[build.LocalProgram]): pass class ExternalLibraryHolder(ObjectHolder[ExternalLibrary]): @@ -1163,24 +1168,3 @@ class StructuredSourcesHolder(ObjectHolder[build.StructuredSources]): def __init__(self, sources: build.StructuredSources, interp: 'Interpreter'): super().__init__(sources, interp) - -class OverrideExecutableHolder(BuildTargetHolder[build.OverrideExecutable]): - @noPosargs - @noKwargs - @FeatureNew('OverrideExecutable.version', '1.9.0') - @InterpreterObject.method('version') - def version_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> str: - return self.held_object.get_version(self.interpreter) - -class LocalProgramHolder(ObjectHolder[build.LocalProgram]): - @noPosargs - @noKwargs - @InterpreterObject.method('version') - def version_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> str: - return self.held_object.version - - @noPosargs - @noKwargs - @InterpreterObject.method('found') - def found_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> bool: - return True diff --git a/mesonbuild/interpreter/mesonmain.py b/mesonbuild/interpreter/mesonmain.py index 79ebd9af1..5a4d7f899 100644 --- a/mesonbuild/interpreter/mesonmain.py +++ b/mesonbuild/interpreter/mesonmain.py @@ -14,7 +14,7 @@ from .. import mlog, coredata from ..mesonlib import MachineChoice from ..options import OptionKey -from ..programs import OverrideProgram, ExternalProgram +from ..programs import ExternalProgram from ..interpreter.type_checking import ENV_KW, ENV_METHOD_KW, ENV_SEPARATOR_KW, env_convertor_with_method from ..interpreterbase import (MesonInterpreterObject, FeatureNew, FeatureDeprecated, typed_pos_args, noArgsFlattening, noPosargs, noKwargs, @@ -322,9 +322,10 @@ class MesonMain(MesonInterpreterObject): self.interpreter.environment.build_dir) if not os.path.exists(abspath): raise InterpreterException(f'Tried to override {name} with a file that does not exist.') - exe = OverrideProgram(name, self.interpreter.project_version, command=[abspath]) + prog = ExternalProgram(name, command=[abspath], silent=True) + exe = build.LocalProgram(prog, self.interpreter.project_version) elif isinstance(exe, build.Executable): - exe = build.OverrideExecutable(exe, self.interpreter.project_version) + exe = build.LocalProgram(exe, self.interpreter.project_version) self.interpreter.add_find_program_override(name, exe) @typed_kwargs( diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py index f306f3ca5..5f088e9ed 100644 --- a/mesonbuild/modules/__init__.py +++ b/mesonbuild/modules/__init__.py @@ -18,7 +18,6 @@ if T.TYPE_CHECKING: from ..interpreter import Interpreter from ..interpreter.interpreter import ProgramVersionFunc from ..interpreterbase import TYPE_var, TYPE_kwargs - from ..programs import OverrideProgram from ..dependencies import Dependency from ..options import ElementaryOptionValues @@ -75,14 +74,14 @@ class ModuleState: required: bool = True, version_func: T.Optional[ProgramVersionFunc] = None, wanted: T.Union[str, T.List[str]] = '', silent: bool = False, - for_machine: MachineChoice = MachineChoice.HOST) -> T.Union[ExternalProgram, build.OverrideExecutable, OverrideProgram, build.LocalProgram]: + for_machine: MachineChoice = MachineChoice.HOST) -> T.Union[ExternalProgram, build.LocalProgram]: if not isinstance(prog, list): prog = [prog] return self._interpreter.find_program_impl(prog, required=required, version_func=version_func, wanted=wanted, silent=silent, for_machine=for_machine) def find_tool(self, name: str, depname: str, varname: str, required: bool = True, - wanted: T.Optional[str] = None) -> T.Union[build.OverrideExecutable, ExternalProgram, OverrideProgram, build.LocalProgram]: + wanted: T.Optional[str] = None) -> T.Union[ExternalProgram, build.LocalProgram]: # Look in overrides in case it's built as subproject progobj = self._interpreter.program_from_overrides([name], []) if progobj is not None: diff --git a/mesonbuild/modules/_qt.py b/mesonbuild/modules/_qt.py index 85aab1829..0f6d2ecb2 100644 --- a/mesonbuild/modules/_qt.py +++ b/mesonbuild/modules/_qt.py @@ -208,7 +208,7 @@ class QtBaseModule(ExtensionModule): self.qt_version = qt_version # It is important that this list does not change order as the order of # the returned ExternalPrograms will change as well - self.tools: T.Dict[str, T.Union[ExternalProgram, build.Executable, build.LocalProgram]] = { + self.tools: T.Dict[str, T.Union[ExternalProgram, build.LocalProgram]] = { tool: NonExistingExternalProgram(tool) for tool in self._set_of_qt_tools } self.methods.update({ @@ -250,7 +250,7 @@ class QtBaseModule(ExtensionModule): arg = ['-v'] # Ensure that the version of qt and each tool are the same - def get_version(p: T.Union[ExternalProgram, build.Executable]) -> str: + def get_version(p: T.Union[ExternalProgram, build.LocalProgram]) -> str: _, out, err = Popen_safe(p.get_command() + arg) if name == 'lrelease' or not qt_dep.version.startswith('4'): care = out @@ -445,7 +445,7 @@ class QtBaseModule(ExtensionModule): for s in sources: qrc_deps.extend(self._parse_qrc_deps(state, s)) - cmd: T.List[T.Union[ExternalProgram, build.Executable, build.LocalProgram, str]] + cmd: T.List[T.Union[ExternalProgram, build.LocalProgram, str]] cmd = [self.tools['rcc'], '-name', name, '-o', '@OUTPUT@'] cmd.extend(extra_args) cmd.append('@INPUT@') @@ -733,7 +733,7 @@ class QtBaseModule(ExtensionModule): ts = os.path.basename(ts) else: outdir = state.subdir - cmd: T.List[T.Union[ExternalProgram, build.Executable, build.LocalProgram, str]] = [self.tools['lrelease'], '@INPUT@', '-qm', '@OUTPUT@'] + cmd: T.List[T.Union[ExternalProgram, build.LocalProgram, str]] = [self.tools['lrelease'], '@INPUT@', '-qm', '@OUTPUT@'] lrelease_target = build.CustomTarget( f'qt{self.qt_version}-compile-{ts}', outdir, @@ -873,7 +873,7 @@ class QtBaseModule(ExtensionModule): input_args.append(f'@INPUT{input_counter}@') input_counter += 1 - cmd: T.List[T.Union[ExternalProgram, build.Executable, build.LocalProgram, str]] + cmd: T.List[T.Union[ExternalProgram, build.LocalProgram, str]] cmd = [self.tools['moc'], '--collect-json', '-o', '@OUTPUT@'] cmd.extend(input_args) return build.CustomTarget( @@ -920,7 +920,7 @@ class QtBaseModule(ExtensionModule): ressource_path = os.path.join('/', kwargs['module_prefix'], source_basename) cachegen_inputs.append(ressource_path) - cmd: T.List[T.Union[ExternalProgram, build.Executable, build.LocalProgram, str]] + cmd: T.List[T.Union[ExternalProgram, build.LocalProgram, str]] cmd = [self.tools['qmlcachegen'], '-o', '@OUTPUT@', '--resource-name', f'qmlcache_{target_name}'] cmd.extend(kwargs['extra_args']) cmd.append('--resource=@INPUT@') diff --git a/mesonbuild/modules/dlang.py b/mesonbuild/modules/dlang.py index 6d35e30ac..860a62481 100644 --- a/mesonbuild/modules/dlang.py +++ b/mesonbuild/modules/dlang.py @@ -22,12 +22,11 @@ if T.TYPE_CHECKING: from typing_extensions import Literal, TypeAlias from . import ModuleState - from ..build import OverrideExecutable from ..interpreter.interpreter import Interpreter from ..interpreterbase.baseobjects import TYPE_kwargs - from ..programs import ExternalProgram, OverrideProgram + from ..programs import ExternalProgram - _AnyProgram: TypeAlias = T.Union[OverrideExecutable, ExternalProgram, OverrideProgram, LocalProgram] + _AnyProgram: TypeAlias = T.Union[ExternalProgram, LocalProgram] _JSONTypes: TypeAlias = T.Union[str, int, bool, None, T.List['_JSONTypes'], T.Dict[str, '_JSONTypes']] diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index b4d4265b8..6219e4ce0 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -33,7 +33,6 @@ from ..mesonlib import ( MachineChoice, MesonException, OrderedSet, Popen_safe, join_args, quote_arg ) from ..options import OptionKey -from ..programs import OverrideProgram from ..scripts.gettext import read_linguas if T.TYPE_CHECKING: @@ -198,7 +197,7 @@ if T.TYPE_CHECKING: vtail: T.Optional[str] depends: T.List[T.Union[BuildTarget, CustomTarget, CustomTargetIndex]] - ToolType: TypeAlias = T.Union[Executable, ExternalProgram, LocalProgram] + ToolType: TypeAlias = T.Union[ExternalProgram, LocalProgram] # Differs from the CustomTarget version in that it straight defaults to True @@ -809,7 +808,7 @@ class GnomeModule(ExtensionModule): @functools.lru_cache(maxsize=None) def _gir_has_option(self, option: str) -> bool: exe = self.giscanner - if isinstance(exe, (Executable, OverrideProgram)): + if isinstance(exe, LocalProgram): # Handle overridden g-ir-scanner assert option in {'--extra-library', '--sources-top-dirs'} return True @@ -1193,7 +1192,7 @@ class GnomeModule(ExtensionModule): gir_inc_dirs: T.List[str] = [] - scan_command: T.List[T.Union[str, ToolType]] = [giscanner] + scan_command: T.List[T.Union[str, ToolType, Executable]] = [giscanner] scan_command += ['--quiet'] scan_command += ['--no-libtool'] scan_command += ['--namespace=' + ns, '--nsversion=' + nsversion] diff --git a/mesonbuild/modules/i18n.py b/mesonbuild/modules/i18n.py index b3779f968..06e891714 100644 --- a/mesonbuild/modules/i18n.py +++ b/mesonbuild/modules/i18n.py @@ -259,7 +259,7 @@ class I18nModule(ExtensionModule): 'itstool_join': self.itstool_join, 'xgettext': self.xgettext, }) - self.tools: T.Dict[str, T.Optional[T.Union[ExternalProgram, build.Executable, build.LocalProgram]]] = { + self.tools: T.Dict[str, T.Optional[T.Union[ExternalProgram, build.LocalProgram]]] = { 'itstool': None, 'msgfmt': None, 'msginit': None, diff --git a/mesonbuild/modules/icestorm.py b/mesonbuild/modules/icestorm.py index a2a947d7f..86af78d8b 100644 --- a/mesonbuild/modules/icestorm.py +++ b/mesonbuild/modules/icestorm.py @@ -29,7 +29,7 @@ class IceStormModule(ExtensionModule): def __init__(self, interpreter: Interpreter) -> None: super().__init__(interpreter) - self.tools: T.Dict[str, T.Union[ExternalProgram, build.Executable, build.LocalProgram]] = {} + self.tools: T.Dict[str, T.Union[ExternalProgram, build.LocalProgram]] = {} self.methods.update({ 'project': self.project, }) diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py index 6f5a63a0b..3ec446267 100644 --- a/mesonbuild/modules/python.py +++ b/mesonbuild/modules/python.py @@ -15,7 +15,7 @@ from ..dependencies import NotFoundDependency from ..dependencies.detect import get_dep_identifier, find_external_dependency from ..dependencies.python import BasicPythonExternalProgram, python_factory, _PythonDependencyBase from ..interpreter import extract_required_kwarg, permitted_dependency_kwargs, primitives as P_OBJ -from ..interpreter.interpreterobjects import _ExternalProgramHolder +from ..interpreter.interpreterobjects import _BaseProgramHolder from ..interpreter.type_checking import NoneType, DEPENDENCY_KWS, PRESERVE_PATH_KW, SHARED_MOD_KWS from ..interpreterbase import ( noPosargs, noKwargs, permittedKwargs, ContainerTypeInfo, @@ -109,9 +109,9 @@ _SUBDIR_KW = KwargInfo('subdir', str, default='') _LIMITED_API_KW = KwargInfo('limited_api', str, default='', since='1.3.0') _DEFAULTABLE_SUBDIR_KW = KwargInfo('subdir', (str, NoneType)) -class PythonInstallation(_ExternalProgramHolder['PythonExternalProgram']): +class PythonInstallation(_BaseProgramHolder['PythonExternalProgram']): def __init__(self, python: 'PythonExternalProgram', interpreter: 'Interpreter'): - _ExternalProgramHolder.__init__(self, python, interpreter) + _BaseProgramHolder.__init__(self, python, interpreter) info = python.info prefix = self.interpreter.environment.coredata.optstore.get_value_for(OptionKey('prefix')) assert isinstance(prefix, str), 'for mypy' diff --git a/mesonbuild/modules/rust.py b/mesonbuild/modules/rust.py index cd61b776d..3d0ad771e 100644 --- a/mesonbuild/modules/rust.py +++ b/mesonbuild/modules/rust.py @@ -33,7 +33,6 @@ if T.TYPE_CHECKING: from ..interpreter import kwargs as _kwargs from ..interpreter.interpreter import SourceInputs, SourceOutputs from ..interpreter.interpreterobjects import Test - from ..programs import OverrideProgram from ..interpreter.type_checking import SourcesVarargsType from typing_extensions import TypedDict, Literal @@ -91,7 +90,7 @@ class RustModule(ExtensionModule): def __init__(self, interpreter: Interpreter) -> None: super().__init__(interpreter) - self._bindgen_bin: T.Optional[T.Union[ExternalProgram, Executable, OverrideProgram, LocalProgram]] = None + self._bindgen_bin: T.Optional[T.Union[ExternalProgram, LocalProgram]] = None if 'rust' in interpreter.compilers.host: rustc = T.cast('RustCompiler', interpreter.compilers.host['rust']) self._bindgen_rust_target = 'nightly' if rustc.is_nightly else rustc.version diff --git a/mesonbuild/modules/wayland.py b/mesonbuild/modules/wayland.py index 458a0a78d..675a6d974 100644 --- a/mesonbuild/modules/wayland.py +++ b/mesonbuild/modules/wayland.py @@ -15,7 +15,6 @@ if T.TYPE_CHECKING: from typing_extensions import Literal, TypedDict from . import ModuleState - from ..build import Executable from ..dependencies import Dependency from ..interpreter import Interpreter from ..programs import ExternalProgram @@ -42,7 +41,7 @@ class WaylandModule(ExtensionModule): self.protocols_dep: T.Optional[Dependency] = None self.pkgdatadir: T.Optional[str] = None - self.scanner_bin: T.Optional[T.Union[ExternalProgram, Executable, LocalProgram]] = None + self.scanner_bin: T.Optional[T.Union[ExternalProgram, LocalProgram]] = None self.methods.update({ 'scan_xml': self.scan_xml, diff --git a/mesonbuild/programs.py b/mesonbuild/programs.py index 0abf09720..80acb98c8 100644 --- a/mesonbuild/programs.py +++ b/mesonbuild/programs.py @@ -357,17 +357,6 @@ class NonExistingExternalProgram(ExternalProgram): # lgtm [py/missing-call-to-i return False -class OverrideProgram(ExternalProgram): - - """A script overriding a program.""" - - def __init__(self, name: str, version: str, command: T.Optional[T.List[str]] = None, - silent: bool = False, search_dirs: T.Optional[T.List[T.Optional[str]]] = None, - exclude_paths: T.Optional[T.List[str]] = None): - super().__init__(name, command=command, silent=silent, - search_dirs=search_dirs, exclude_paths=exclude_paths) - self.cached_version = version - def find_external_program(env: 'Environment', for_machine: MachineChoice, name: str, display_name: str, default_names: T.List[str], allow_default_for_cross: bool = True, |
