diff options
| author | Xavier Claessens <xclaessens@netflix.com> | 2025-10-12 10:20:47 -0400 |
|---|---|---|
| committer | Xavier Claessens <xclaesse@gmail.com> | 2025-10-15 12:15:39 -0400 |
| commit | bd33265b04ca609afe6bb895453c5757bbbbb27d (patch) | |
| tree | 03b87a92694d2f7821612f6405540cc0e044ab6d /mesonbuild/modules | |
| parent | 4795475595ef6b87074df9e38d09a3dff2690396 (diff) | |
| download | meson-bd33265b04ca609afe6bb895453c5757bbbbb27d.tar.gz | |
Replace OverrideExecutable and OverrideProgram with LocalProgram
Diffstat (limited to 'mesonbuild/modules')
| -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 |
9 files changed, 20 insertions, 25 deletions
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, |
