Checks for all build target functions.
@@ -1225,7 +1225,7 @@ lang_arg_kwargs = set(['c_args',
'fortran_args',
'vala_args'])
-exe_kwargs = set(['sources',
+buildtarget_kwargs = set(['sources',
'link_with',
'link_whole',
'link_args',
@@ -1240,13 +1240,31 @@ exe_kwargs = set(['sources',
'objects',
'native',
'name_suffix',
+ 'name_prefix',
'build_by_default',
+ 'vs_module_defs',
+ 'pic',
'override_options'])
+
+exe_kwargs = set()
+exe_kwargs.update(buildtarget_kwargs)
exe_kwargs.update(lang_arg_kwargs)
exe_kwargs.update(pch_kwargs)
+
+shlib_kwargs = set()
+shlib_kwargs.update(buildtarget_kwargs)
+shlib_kwargs.update(lang_arg_kwargs)
+shlib_kwargs.update(pch_kwargs)
+shlib_kwargs.update(['version', 'soversion'])
+shmod_kwargs = shlib_kwargs
+stlib_kwargs = shlib_kwargs
+
permitted_kwargs = {'project': set(['version', 'meson_version', 'default_options', 'license', 'subproject_dir']),
'executable': exe_kwargs,
+ 'shared_library': shlib_kwargs,
+ 'static_library': stlib_kwargs,
+ 'shared_module': shmod_kwargs,
}
@@ -2042,12 +2060,15 @@ class Interpreter(InterpreterBase):
def func_executable(self, node, args, kwargs):
return self.build_target(node, args, kwargs, ExecutableHolder)
+ @permittedKwargs(permitted_kwargs['static_library'])
def func_static_lib(self, node, args, kwargs):
return self.build_target(node, args, kwargs, StaticLibraryHolder)
+ @permittedKwargs(permitted_kwargs['shared_library'])
def func_shared_lib(self, node, args, kwargs):
return self.build_target(node, args, kwargs, SharedLibraryHolder)
+ @permittedKwargs(permitted_kwargs['shared_module'])
def func_shared_module(self, node, args, kwargs):
return self.build_target(node, args, kwargs, SharedModuleHolder)
