aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-06-22 15:30:47 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2017-06-26 21:10:27 +0300
commit46e61971ce4d83bdea5363a57ae0820857d5843a (patch)
treecb34012d7cfc829812a933cd83ec70d04ac21673 /mesonbuild/interpreter.py
parentce9cd33f27e8605c2d7fc77c3c2f086b6ac530ae (diff)
downloadmeson-46e61971ce4d83bdea5363a57ae0820857d5843a.zip
meson-46e61971ce4d83bdea5363a57ae0820857d5843a.tar.gz
meson-46e61971ce4d83bdea5363a57ae0820857d5843a.tar.bz2
Decorator to check for permitted kwargs.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 7f279c1..0103883 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -26,7 +26,7 @@ from .mesonlib import FileMode, Popen_safe, get_meson_script
from .dependencies import ExternalProgram
from .dependencies import InternalDependency, Dependency, DependencyException
from .interpreterbase import InterpreterBase
-from .interpreterbase import check_stringlist, noPosargs, noKwargs, stringArgs
+from .interpreterbase import check_stringlist, noPosargs, noKwargs, stringArgs, permittedKwargs
from .interpreterbase import InterpreterException, InvalidArguments, InvalidCode
from .interpreterbase import InterpreterObject, MutableInterpreterObject
from .modules import ModuleReturnValue
@@ -1214,6 +1214,11 @@ class MesonMain(InterpreterObject):
return args[1]
raise InterpreterException('Unknown cross property: %s.' % propname)
+
+permitted_kwargs = {'project': set(['version', 'meson_version', 'default_options', 'license', 'subproject_dir']),
+ }
+
+
class Interpreter(InterpreterBase):
def __init__(self, build, backend, subproject='', subdir='', subproject_dir='subprojects',
@@ -1632,6 +1637,7 @@ class Interpreter(InterpreterBase):
self.environment.cmd_line_options.projectoptions = newoptions
@stringArgs
+ @permittedKwargs(permitted_kwargs['project'])
def func_project(self, node, args, kwargs):
if len(args) < 1:
raise InvalidArguments('Not enough arguments to project(). Needs at least the project name.')