interpreter: use typed_pos_args for files
This commit is contained in:
parent
011f13bcdc
commit
52c68ca6fe
|
@ -650,10 +650,10 @@ class Interpreter(InterpreterBase, HoldableObject):
|
||||||
modname = 'unstable_' + plainname
|
modname = 'unstable_' + plainname
|
||||||
return self._import_module(modname, required)
|
return self._import_module(modname, required)
|
||||||
|
|
||||||
@stringArgs
|
@typed_pos_args('files', varargs=str)
|
||||||
@noKwargs
|
@noKwargs
|
||||||
def func_files(self, node, args, kwargs):
|
def func_files(self, node: mparser.FunctionNode, args: T.Tuple[T.List[str]], kwargs: 'TYPE_kwargs') -> T.List[mesonlib.File]:
|
||||||
return [mesonlib.File.from_source_file(self.environment.source_dir, self.subdir, fname) for fname in args]
|
return [mesonlib.File.from_source_file(self.environment.source_dir, self.subdir, fname) for fname in args[0]]
|
||||||
|
|
||||||
# Used by declare_dependency() and pkgconfig.generate()
|
# Used by declare_dependency() and pkgconfig.generate()
|
||||||
def extract_variables(self, kwargs, argname='variables', list_new=False, dict_new=False):
|
def extract_variables(self, kwargs, argname='variables', list_new=False, dict_new=False):
|
||||||
|
@ -1690,7 +1690,6 @@ external dependencies (including libraries) must go to "dependencies".''')
|
||||||
def func_subdir_done(self, node, args, kwargs):
|
def func_subdir_done(self, node, args, kwargs):
|
||||||
raise SubdirDoneRequest()
|
raise SubdirDoneRequest()
|
||||||
|
|
||||||
@stringArgs
|
|
||||||
@FeatureNewKwargs('custom_target', '0.57.0', ['env'])
|
@FeatureNewKwargs('custom_target', '0.57.0', ['env'])
|
||||||
@FeatureNewKwargs('custom_target', '0.48.0', ['console'])
|
@FeatureNewKwargs('custom_target', '0.48.0', ['console'])
|
||||||
@FeatureNewKwargs('custom_target', '0.47.0', ['install_mode', 'build_always_stale'])
|
@FeatureNewKwargs('custom_target', '0.47.0', ['install_mode', 'build_always_stale'])
|
||||||
|
@ -1700,9 +1699,8 @@ external dependencies (including libraries) must go to "dependencies".''')
|
||||||
'build_always', 'capture', 'depends', 'depend_files', 'depfile',
|
'build_always', 'capture', 'depends', 'depend_files', 'depfile',
|
||||||
'build_by_default', 'build_always_stale', 'console', 'env',
|
'build_by_default', 'build_always_stale', 'console', 'env',
|
||||||
'feed'})
|
'feed'})
|
||||||
def func_custom_target(self, node, args, kwargs):
|
@typed_pos_args('custom_target', str)
|
||||||
if len(args) != 1:
|
def func_custom_target(self, node: mparser.FunctionNode, args: T.Tuple[str], kwargs: 'TYPE_kwargs') -> build.CustomTarget:
|
||||||
raise InterpreterException('custom_target: Only one positional argument is allowed, and it must be a string name')
|
|
||||||
if 'depfile' in kwargs and ('@BASENAME@' in kwargs['depfile'] or '@PLAINNAME@' in kwargs['depfile']):
|
if 'depfile' in kwargs and ('@BASENAME@' in kwargs['depfile'] or '@PLAINNAME@' in kwargs['depfile']):
|
||||||
FeatureNew.single_use('substitutions in custom_target depfile', '0.47.0', self.subproject)
|
FeatureNew.single_use('substitutions in custom_target depfile', '0.47.0', self.subproject)
|
||||||
return self._func_custom_target_impl(node, args, kwargs)
|
return self._func_custom_target_impl(node, args, kwargs)
|
||||||
|
@ -1727,16 +1725,12 @@ This will become a hard error in the future.''' % kwargs['input'], location=self
|
||||||
|
|
||||||
@FeatureNewKwargs('run_target', '0.57.0', ['env'])
|
@FeatureNewKwargs('run_target', '0.57.0', ['env'])
|
||||||
@permittedKwargs({'command', 'depends', 'env'})
|
@permittedKwargs({'command', 'depends', 'env'})
|
||||||
def func_run_target(self, node, args, kwargs):
|
@typed_pos_args('run_target', str)
|
||||||
if len(args) > 1:
|
def func_run_target(self, node: mparser.FunctionNode, args: T.Tuple[str], kwargs: 'TYPE_kwargs') -> build.RunTarget:
|
||||||
raise InvalidCode('Run_target takes only one positional argument: the target name.')
|
if 'command' not in kwargs:
|
||||||
elif len(args) == 1:
|
raise InterpreterException('Missing "command" keyword argument')
|
||||||
if 'command' not in kwargs:
|
all_args = extract_as_list(kwargs, 'command')
|
||||||
raise InterpreterException('Missing "command" keyword argument')
|
deps = extract_as_list(kwargs, 'depends')
|
||||||
all_args = extract_as_list(kwargs, 'command')
|
|
||||||
deps = extract_as_list(kwargs, 'depends')
|
|
||||||
else:
|
|
||||||
raise InterpreterException('Run_target needs at least one positional argument.')
|
|
||||||
|
|
||||||
cleaned_args = []
|
cleaned_args = []
|
||||||
for i in listify(all_args):
|
for i in listify(all_args):
|
||||||
|
|
Loading…
Reference in New Issue