summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter
diff options
context:
space:
mode:
authorXavier Claessens <xclaessens@netflix.com>2025-10-13 15:49:24 -0400
committerXavier Claessens <xclaesse@gmail.com>2025-10-15 12:15:39 -0400
commit569fe981b08f8fa38ff3533651ceff414decadf4 (patch)
tree75dc96f5ba8fce8bbc8da7d0ce027b573ed20bce /mesonbuild/interpreter
parentbd33265b04ca609afe6bb895453c5757bbbbb27d (diff)
downloadmeson-569fe981b08f8fa38ff3533651ceff414decadf4.tar.gz
Add common ABC for ExternalProgram and LocalProgram
Diffstat (limited to 'mesonbuild/interpreter')
-rw-r--r--mesonbuild/interpreter/__init__.py4
-rw-r--r--mesonbuild/interpreter/interpreter.py5
-rw-r--r--mesonbuild/interpreter/interpreterobjects.py11
3 files changed, 6 insertions, 14 deletions
diff --git a/mesonbuild/interpreter/__init__.py b/mesonbuild/interpreter/__init__.py
index e2ccce479..5186b842b 100644
--- a/mesonbuild/interpreter/__init__.py
+++ b/mesonbuild/interpreter/__init__.py
@@ -20,7 +20,6 @@ __all__ = [
'SubprojectHolder',
'DependencyHolder',
'GeneratedListHolder',
- 'ExternalProgramHolder',
'extract_required_kwarg',
'ArrayHolder',
@@ -35,8 +34,7 @@ from .compiler import CompilerHolder
from .interpreterobjects import (ExecutableHolder, BuildTargetHolder, CustomTargetHolder,
CustomTargetIndexHolder, MachineHolder, Test,
ConfigurationDataHolder, SubprojectHolder, DependencyHolder,
- GeneratedListHolder, ExternalProgramHolder,
- extract_required_kwarg)
+ GeneratedListHolder, extract_required_kwarg)
from .primitives import (
ArrayHolder,
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 552e1331b..7cf9ecc9c 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -21,7 +21,7 @@ from ..mesonlib import (EnvironmentVariables, ExecutableSerialisation, MesonBugE
FileMode, MachineChoice, is_parent_path, listify,
extract_as_list, has_path_sep, path_is_in_root, PerMachine)
from ..options import OptionKey
-from ..programs import ExternalProgram, NonExistingExternalProgram
+from ..programs import ExternalProgram, NonExistingExternalProgram, BaseProgram
from ..dependencies import Dependency
from ..depfile import DepFile
from ..interpreterbase import ContainerTypeInfo, InterpreterBase, KwargInfo, typed_kwargs, typed_pos_args
@@ -440,7 +440,6 @@ class Interpreter(InterpreterBase, HoldableObject):
build.Generator: OBJ.GeneratorHolder,
build.GeneratedList: OBJ.GeneratedListHolder,
build.ExtractedObjects: OBJ.GeneratedObjectsHolder,
- build.LocalProgram: OBJ.LocalProgramHolder,
build.RunTarget: OBJ.RunTargetHolder,
build.AliasTarget: OBJ.AliasTargetHolder,
build.Headers: OBJ.HeadersHolder,
@@ -470,7 +469,7 @@ class Interpreter(InterpreterBase, HoldableObject):
'''
self.bound_holder_map.update({
dependencies.Dependency: OBJ.DependencyHolder,
- ExternalProgram: OBJ.ExternalProgramHolder,
+ BaseProgram: OBJ.BaseProgramHolder,
compilers.Compiler: compilerOBJ.CompilerHolder,
ModuleObject: OBJ.ModuleObjectHolder,
MutableModuleObject: OBJ.MutableModuleObjectHolder,
diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py
index 431086669..addc7d3db 100644
--- a/mesonbuild/interpreter/interpreterobjects.py
+++ b/mesonbuild/interpreter/interpreterobjects.py
@@ -23,7 +23,7 @@ from ..interpreterbase import (
flatten, resolve_second_level_holders, InterpreterException, InvalidArguments, InvalidCode)
from ..interpreter.type_checking import NoneType, ENV_KW, ENV_SEPARATOR_KW, PKGCONFIG_DEFINE_KW
from ..dependencies import Dependency, ExternalLibrary, InternalDependency
-from ..programs import ExternalProgram
+from ..programs import ExternalProgram, BaseProgram
from ..mesonlib import HoldableObject, listify, Popen_safe
import typing as T
@@ -605,9 +605,9 @@ 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'])
-_BASEPROG = T.TypeVar('_BASEPROG', bound=T.Union[ExternalProgram, build.LocalProgram])
+_BASEPROG = T.TypeVar('_BASEPROG', bound=BaseProgram)
-class _BaseProgramHolder(ObjectHolder[_BASEPROG]):
+class BaseProgramHolder(ObjectHolder[_BASEPROG]):
def __init__(self, ep: _BASEPROG, interpreter: 'Interpreter') -> None:
super().__init__(ep, interpreter)
@@ -656,11 +656,6 @@ class _BaseProgramHolder(ObjectHolder[_BASEPROG]):
def found(self) -> bool:
return self.held_object.found()
-class ExternalProgramHolder(_BaseProgramHolder[ExternalProgram]):
- pass
-
-class LocalProgramHolder(_BaseProgramHolder[build.LocalProgram]):
- pass
class ExternalLibraryHolder(ObjectHolder[ExternalLibrary]):
def __init__(self, el: ExternalLibrary, interpreter: 'Interpreter'):