aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreterbase.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r--mesonbuild/interpreterbase.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py
index 649476d..f80d46a 100644
--- a/mesonbuild/interpreterbase.py
+++ b/mesonbuild/interpreterbase.py
@@ -199,6 +199,36 @@ class FeatureDeprecated:
return f(*wrapped_args, **wrapped_kwargs)
return wrapped
+class FeatureNewKwargs:
+ def __init__(self, feature_name, feature_version, kwargs):
+ self.feature_name = feature_name
+ self.feature_version = feature_version
+ self.kwargs = kwargs
+
+ def __call__(self, f):
+ @wraps(f)
+ def wrapped(*wrapped_args, **wrapped_kwargs):
+ for arg in self.kwargs:
+ if arg in wrapped_kwargs:
+ FeatureNew(arg + ' arg in ' + self.feature_name, self.feature_version).use()
+ return f(*wrapped_args, **wrapped_kwargs)
+ return wrapped
+
+class FeatureDeprecatedKwargs:
+ def __init__(self, feature_name, feature_version, kwargs):
+ self.feature_name = feature_name
+ self.feature_version = feature_version
+ self.kwargs = kwargs
+
+ def __call__(self, f):
+ @wraps(f)
+ def wrapped(*wrapped_args, **wrapped_kwargs):
+ for arg in self.kwargs:
+ if arg in wrapped_kwargs:
+ FeatureDeprecated(arg + ' arg in ' + self.feature_name, self.feature_version).use()
+ return f(*wrapped_args, **wrapped_kwargs)
+ return wrapped
+
class InterpreterException(mesonlib.MesonException):
pass