Add a few more.

pull/2001/head
Jussi Pakkanen 8 years ago
parent f7da8dc84d
commit 325a231abe
  1. 41
      mesonbuild/interpreter.py

@ -1252,18 +1252,19 @@ buildtarget_kwargs = set(['sources',
'override_options',
])
build_target_common_kwargs = set()
build_target_common_kwargs.update(buildtarget_kwargs)
build_target_common_kwargs.update(lang_arg_kwargs)
build_target_common_kwargs.update(pch_kwargs)
build_target_common_kwargs.update(vala_kwargs)
build_target_common_kwargs.update(rust_kwargs)
build_target_common_kwargs.update(cs_kwargs)
exe_kwargs = set()
exe_kwargs.update(buildtarget_kwargs)
exe_kwargs.update(lang_arg_kwargs)
exe_kwargs.update(pch_kwargs)
exe_kwargs.update(vala_kwargs)
exe_kwargs.update(rust_kwargs)
exe_kwargs.update(cs_kwargs)
exe_kwargs.update(build_target_common_kwargs)
shlib_kwargs = set()
shlib_kwargs.update(buildtarget_kwargs)
shlib_kwargs.update(lang_arg_kwargs)
shlib_kwargs.update(pch_kwargs)
shlib_kwargs.update(build_target_common_kwargs)
shlib_kwargs.update(['version', 'soversion'])
shmod_kwargs = shlib_kwargs
stlib_kwargs = shlib_kwargs
@ -1290,6 +1291,16 @@ permitted_kwargs = {'project': set(['version', 'meson_version', 'default_options
'install_man': set(['install_dir']),
'install_data': set(['install_dir', 'install_mode', 'sources']),
'install_subdir': set(['install_dir', 'install_mode']),
'configure_file': set(['input', 'output', 'configuration', 'command', 'install_dir', 'capture', 'install']),
'include_directories': set(['is_system']),
'add_global_arguments': set(['language']),
'add_project_arguments': set(['language']),
'add_test_setup': set(['exe_wrapper', 'gdb', 'timeout_multiplier', 'env']),
'add_languages': set(['required']),
'find_program': set(['required',]),
'run_command': set(['in_builddir']), # INTERNAL
'subproject': set(['version', 'default_options']),
'vcs_tag': set(['input', 'output', 'fallback', 'command', 'replace_string']),
}
@ -1537,6 +1548,7 @@ class Interpreter(InterpreterBase):
if not isinstance(actual, wanted):
raise InvalidArguments('Incorrect argument type.')
@permittedKwargs(permitted_kwargs['run_command'])
def func_run_command(self, node, args, kwargs):
if len(args) < 1:
raise InterpreterException('Not enough arguments')
@ -1583,6 +1595,7 @@ class Interpreter(InterpreterBase):
def func_option(self, nodes, args, kwargs):
raise InterpreterException('Tried to call option() in build description file. All options must be in the option file.')
@permittedKwargs(permitted_kwargs['subproject'])
@stringArgs
def func_subproject(self, nodes, args, kwargs):
if len(args) != 1:
@ -1758,6 +1771,7 @@ class Interpreter(InterpreterBase):
if not self.is_subproject():
self.check_cross_stdlibs()
@permittedKwargs(permitted_kwargs['add_languages'])
@stringArgs
def func_add_languages(self, node, args, kwargs):
return self.add_languages(args, kwargs.get('required', True))
@ -1901,6 +1915,7 @@ class Interpreter(InterpreterBase):
break
self.coredata.base_options[optname] = oobj
@permittedKwargs(permitted_kwargs['find_program'])
def func_find_program(self, node, args, kwargs):
if not args:
raise InterpreterException('No program name specified.')
@ -2125,6 +2140,7 @@ class Interpreter(InterpreterBase):
else:
raise InterpreterException('Unknown target_type.')
@permittedKwargs(permitted_kwargs['vcs_tag'])
def func_vcs_tag(self, node, args, kwargs):
if 'input' not in kwargs or 'output' not in kwargs:
raise InterpreterException('Keyword arguments input and output must exist')
@ -2409,6 +2425,7 @@ class Interpreter(InterpreterBase):
self.build.install_dirs.append(idir)
return idir
@permittedKwargs(permitted_kwargs['configure_file'])
def func_configure_file(self, node, args, kwargs):
if len(args) > 0:
raise InterpreterException("configure_file takes only keyword arguments.")
@ -2503,6 +2520,7 @@ class Interpreter(InterpreterBase):
self.build.data.append(build.Data([cfile], idir))
return mesonlib.File.from_built_file(self.subdir, output)
@permittedKwargs(permitted_kwargs['include_directories'])
@stringArgs
def func_include_directories(self, node, args, kwargs):
src_root = self.environment.get_source_dir()
@ -2539,6 +2557,7 @@ different subdirectory.
i = IncludeDirsHolder(build.IncludeDirs(self.subdir, args, is_system))
return i
@permittedKwargs(permitted_kwargs['add_test_setup'])
@stringArgs
def func_add_test_setup(self, node, args, kwargs):
if len(args) != 1:
@ -2580,18 +2599,22 @@ different subdirectory.
# and just use the master project ones.
self.build.test_setups[setup_name] = setupobj
@permittedKwargs(permitted_kwargs['add_global_arguments'])
@stringArgs
def func_add_global_arguments(self, node, args, kwargs):
self.add_global_arguments(node, self.build.global_args, args, kwargs)
@noKwargs
@stringArgs
def func_add_global_link_arguments(self, node, args, kwargs):
self.add_global_arguments(node, self.build.global_link_args, args, kwargs)
@permittedKwargs(permitted_kwargs['add_project_arguments'])
@stringArgs
def func_add_project_arguments(self, node, args, kwargs):
self.add_project_arguments(node, self.build.projects_args, args, kwargs)
@noKwargs
@stringArgs
def func_add_project_link_arguments(self, node, args, kwargs):
self.add_project_arguments(node, self.build.projects_link_args, args, kwargs)

Loading…
Cancel
Save