2121 FileMode , MachineChoice , is_parent_path , listify ,
2222 extract_as_list , has_path_sep , path_is_in_root , PerMachine )
2323from ..options import OptionKey
24- from ..programs import ExternalProgram , NonExistingExternalProgram , BaseProgram
24+ from ..programs import ExternalProgram , NonExistingExternalProgram , Program
2525from ..dependencies import Dependency
2626from ..depfile import DepFile
2727from ..interpreterbase import ContainerTypeInfo , InterpreterBase , KwargInfo , typed_kwargs , typed_pos_args
130130
131131 BuildTargetSource = T .Union [mesonlib .FileOrString , build .GeneratedTypes , build .StructuredSources ]
132132
133- ProgramVersionFunc = T .Callable [[T . Union [ ExternalProgram , build . LocalProgram ] ], str ]
133+ ProgramVersionFunc = T .Callable [[Program ], str ]
134134
135135 TestClass = T .TypeVar ('TestClass' , bound = Test )
136136
@@ -447,7 +447,7 @@ def build_holder_map(self) -> None:
447447 '''
448448 self .bound_holder_map .update ({
449449 dependencies .Dependency : OBJ .DependencyHolder ,
450- BaseProgram : OBJ .BaseProgramHolder ,
450+ Program : OBJ .ProgramHolder ,
451451 compilers .Compiler : compilerOBJ .CompilerHolder ,
452452 ModuleObject : OBJ .ModuleObjectHolder ,
453453 MutableModuleObject : OBJ .MutableModuleObjectHolder ,
@@ -745,17 +745,17 @@ def validate_arguments(self, args, argcount, arg_types):
745745 # better error messages when overridden
746746 @typed_pos_args (
747747 'run_command' ,
748- (build .Executable , ExternalProgram , compilers .Compiler , mesonlib .File , str , build . LocalProgram ),
749- varargs = (build .Executable , ExternalProgram , compilers .Compiler , mesonlib .File , str , build . LocalProgram ))
748+ (build .Executable , Program , compilers .Compiler , mesonlib .File , str ),
749+ varargs = (build .Executable , Program , compilers .Compiler , mesonlib .File , str ))
750750 @typed_kwargs (
751751 'run_command' ,
752752 KwargInfo ('check' , (bool , NoneType ), since = '0.47.0' ),
753753 KwargInfo ('capture' , bool , default = True , since = '0.47.0' ),
754754 ENV_KW .evolve (since = '0.50.0' ),
755755 )
756756 def func_run_command (self , node : mparser .BaseNode ,
757- args : T .Tuple [T .Union [build .Executable , ExternalProgram , compilers .Compiler , mesonlib .File , str , build . LocalProgram ],
758- T .List [T .Union [build .Executable , ExternalProgram , compilers .Compiler , mesonlib .File , str , build . LocalProgram ]]],
757+ args : T .Tuple [T .Union [build .Executable , Program , compilers .Compiler , mesonlib .File , str ],
758+ T .List [T .Union [build .Executable , Program , compilers .Compiler , mesonlib .File , str ]]],
759759 kwargs : 'kwtypes.RunCommand' ) -> RunProcess :
760760 return self .run_command_impl (args , kwargs )
761761
@@ -767,8 +767,8 @@ def _compiled_exe_error(self, cmd: T.Union[build.LocalProgram, build.Executable]
767767 raise InterpreterException (f'Program { descr !r} is a compiled executable and therefore cannot be used during configuration' )
768768
769769 def run_command_impl (self ,
770- args : T .Tuple [T .Union [build .Executable , ExternalProgram , compilers .Compiler , mesonlib .File , str , build . LocalProgram ],
771- T .List [T .Union [build .Executable , ExternalProgram , compilers .Compiler , mesonlib .File , str , build . LocalProgram ]]],
770+ args : T .Tuple [T .Union [build .Executable , Program , compilers .Compiler , mesonlib .File , str ],
771+ T .List [T .Union [build .Executable , Program , compilers .Compiler , mesonlib .File , str ]]],
772772 kwargs : 'kwtypes.RunCommand' ,
773773 in_builddir : bool = False ) -> RunProcess :
774774 cmd , cargs = args
@@ -1595,7 +1595,7 @@ def program_from_system(self, args: T.List[mesonlib.FileOrString], search_dirs:
15951595
15961596 def program_from_overrides (self , command_names : T .List [mesonlib .FileOrString ],
15971597 extra_info : T .List ['mlog.TV_Loggable' ]
1598- ) -> T .Optional [T . Union [ ExternalProgram , build . LocalProgram ] ]:
1598+ ) -> T .Optional [Program ]:
15991599 for name in command_names :
16001600 if not isinstance (name , str ):
16011601 continue
@@ -1610,7 +1610,7 @@ def store_name_lookups(self, command_names: T.List[mesonlib.FileOrString]) -> No
16101610 if isinstance (name , str ):
16111611 self .build .searched_programs .add (name )
16121612
1613- def add_find_program_override (self , name : str , exe : T . Union [ ExternalProgram , build . LocalProgram ] ) -> None :
1613+ def add_find_program_override (self , name : str , exe : Program ) -> None :
16141614 if name in self .build .searched_programs :
16151615 raise InterpreterException (f'Tried to override finding of executable "{ name } " which has already been found.' )
16161616 if name in self .build .find_overrides :
@@ -1635,7 +1635,7 @@ def find_program_impl(self, args: T.List[mesonlib.FileOrString],
16351635 search_dirs : T .Optional [T .List [str ]] = None ,
16361636 version_arg : T .Optional [str ] = '' ,
16371637 version_func : T .Optional [ProgramVersionFunc ] = None
1638- ) -> T . Union [ ExternalProgram , build . LocalProgram ] :
1638+ ) -> Program :
16391639 args = mesonlib .listify (args )
16401640
16411641 extra_info : T .List [mlog .TV_Loggable ] = []
@@ -1667,7 +1667,7 @@ def program_lookup(self, args: T.List[mesonlib.FileOrString], for_machine: Machi
16671667 version_arg : T .Optional [str ],
16681668 version_func : T .Optional [ProgramVersionFunc ],
16691669 extra_info : T .List [mlog .TV_Loggable ]
1670- ) -> T .Optional [T . Union [ ExternalProgram , build . LocalProgram ] ]:
1670+ ) -> T .Optional [Program ]:
16711671 progobj = self .program_from_overrides (args , extra_info )
16721672 if progobj :
16731673 return progobj
@@ -1703,7 +1703,7 @@ def program_lookup(self, args: T.List[mesonlib.FileOrString], for_machine: Machi
17031703
17041704 return progobj
17051705
1706- def check_program_version (self , progobj : T . Union [ ExternalProgram , build . LocalProgram ] ,
1706+ def check_program_version (self , progobj : Program ,
17071707 wanted : T .Union [str , T .List [str ]],
17081708 version_func : T .Optional [ProgramVersionFunc ],
17091709 extra_info : T .List [mlog .TV_Loggable ]) -> bool :
@@ -1730,7 +1730,7 @@ def check_program_version(self, progobj: T.Union[ExternalProgram, build.LocalPro
17301730 def find_program_fallback (self , fallback : str , args : T .List [mesonlib .FileOrString ],
17311731 default_options : OptionDict ,
17321732 required : bool , extra_info : T .List [mlog .TV_Loggable ]
1733- ) -> T .Optional [T . Union [ ExternalProgram , build . LocalProgram ] ]:
1733+ ) -> T .Optional [Program ]:
17341734 mlog .log ('Fallback to subproject' , mlog .bold (fallback ), 'which provides program' ,
17351735 mlog .bold (' ' .join (args )))
17361736 sp_kwargs : kwtypes .DoSubproject = {
@@ -1757,7 +1757,7 @@ def find_program_fallback(self, fallback: str, args: T.List[mesonlib.FileOrStrin
17571757 @disablerIfNotFound
17581758 def func_find_program (self , node : mparser .BaseNode , args : T .Tuple [T .List [mesonlib .FileOrString ]],
17591759 kwargs : 'kwtypes.FindProgram' ,
1760- ) -> T . Union [ ExternalProgram , build . LocalProgram ] :
1760+ ) -> Program :
17611761 disabled , required , feature = extract_required_kwarg (kwargs , self .subproject )
17621762 if disabled :
17631763 mlog .log ('Program' , mlog .bold (' ' .join (args [0 ])), 'skipped: feature' , mlog .bold (feature ), 'disabled' )
@@ -2193,7 +2193,7 @@ def func_alias_target(self, node: mparser.BaseNode, args: T.Tuple[str, T.List[T.
21932193 self .add_target (name , tg )
21942194 return tg
21952195
2196- @typed_pos_args ('generator' , (build .Executable , ExternalProgram , build . LocalProgram ))
2196+ @typed_pos_args ('generator' , (build .Executable , Program ))
21972197 @typed_kwargs (
21982198 'generator' ,
21992199 KwargInfo ('arguments' , ContainerTypeInfo (list , str , allow_empty = False ), required = True , listify = True ),
@@ -2203,7 +2203,7 @@ def func_alias_target(self, node: mparser.BaseNode, args: T.Tuple[str, T.List[T.
22032203 KwargInfo ('capture' , bool , default = False , since = '0.43.0' ),
22042204 )
22052205 def func_generator (self , node : mparser .FunctionNode ,
2206- args : T .Tuple [T .Union [build .Executable , ExternalProgram , build . LocalProgram ]],
2206+ args : T .Tuple [T .Union [build .Executable , Program ]],
22072207 kwargs : 'kwtypes.FuncGenerator' ) -> build .Generator :
22082208 for rule in kwargs ['output' ]:
22092209 if '@BASENAME@' not in rule and '@PLAINNAME@' not in rule :
@@ -2217,17 +2217,17 @@ def func_generator(self, node: mparser.FunctionNode,
22172217
22182218 return build .Generator (self .environment , args [0 ], ** kwargs )
22192219
2220- @typed_pos_args ('benchmark' , str , (build .Executable , build .Jar , ExternalProgram , mesonlib .File , build .CustomTarget , build .CustomTargetIndex , build . LocalProgram ))
2220+ @typed_pos_args ('benchmark' , str , (build .Executable , build .Jar , Program , mesonlib .File , build .CustomTarget , build .CustomTargetIndex ))
22212221 @typed_kwargs ('benchmark' , * TEST_KWS )
22222222 def func_benchmark (self , node : mparser .BaseNode ,
2223- args : T .Tuple [str , T .Union [build .Executable , build .Jar , ExternalProgram , mesonlib .File , build . LocalProgram ]],
2223+ args : T .Tuple [str , T .Union [build .Executable , build .Jar , Program , mesonlib .File ]],
22242224 kwargs : 'kwtypes.FuncBenchmark' ) -> None :
22252225 self .add_test (node , args , kwargs , False )
22262226
2227- @typed_pos_args ('test' , str , (build .Executable , build .Jar , ExternalProgram , mesonlib .File , build .CustomTarget , build .CustomTargetIndex , build . LocalProgram ))
2227+ @typed_pos_args ('test' , str , (build .Executable , build .Jar , Program , mesonlib .File , build .CustomTarget , build .CustomTargetIndex ))
22282228 @typed_kwargs ('test' , * TEST_KWS , KwargInfo ('is_parallel' , bool , default = True ))
22292229 def func_test (self , node : mparser .BaseNode ,
2230- args : T .Tuple [str , T .Union [build .Executable , build .Jar , ExternalProgram , mesonlib .File , build . CustomTarget , build . CustomTargetIndex , build . LocalProgram ]],
2230+ args : T .Tuple [str , T .Union [build .Executable , build .Jar , Program , mesonlib .File ]],
22312231 kwargs : 'kwtypes.FuncTest' ) -> None :
22322232 self .add_test (node , args , kwargs , True )
22332233
@@ -2241,7 +2241,7 @@ def unpack_env_kwarg(self, kwargs: T.Union[EnvironmentVariables, T.Dict[str, 'TY
22412241 return ENV_KW .convertor (envlist )
22422242
22432243 def make_test (self , node : mparser .BaseNode ,
2244- args : T .Tuple [str , T .Union [build .Executable , build .Jar , ExternalProgram , mesonlib .File , build .CustomTarget , build .CustomTargetIndex , build . LocalProgram ]],
2244+ args : T .Tuple [str , T .Union [build .Executable , build .Jar , Program , mesonlib .File , build .CustomTarget , build .CustomTargetIndex ]],
22452245 kwargs : 'kwtypes.BaseTest' ,
22462246 klass : T .Type [TestClass ] = Test ) -> TestClass :
22472247 name = args [0 ]
@@ -2619,7 +2619,7 @@ def validate_build_subdir(self, build_subdir: str, target: str):
26192619 KwargInfo ('capture' , bool , default = False , since = '0.41.0' ),
26202620 KwargInfo (
26212621 'command' ,
2622- (ContainerTypeInfo (list , (build .Executable , ExternalProgram , compilers .Compiler , mesonlib .File , str , build . LocalProgram ), allow_empty = False ), NoneType ),
2622+ (ContainerTypeInfo (list , (build .Executable , Program , compilers .Compiler , mesonlib .File , str ) ), NoneType ),
26232623 listify = True ,
26242624 ),
26252625 KwargInfo (
0 commit comments