diff options
author | Salamandar <felix@piedallu.me> | 2018-04-26 15:12:20 +0200 |
---|---|---|
committer | Salamandar <felix@piedallu.me> | 2018-06-01 14:23:24 +0200 |
commit | ee2f8a0416f6973d03d36601f5dd99db7825ef7f (patch) | |
tree | 710ec5a2b148cddf0eae595c2cd6b013fce93959 | |
parent | 583e9c4af6fabaf9e61f16a7422160ae2977fce4 (diff) | |
download | meson-ee2f8a0416f6973d03d36601f5dd99db7825ef7f.tar.gz |
Add basic code for feature version detection:
* store target version
* Add empty method decorator
-rw-r--r-- | mesonbuild/coredata.py | 1 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 1 | ||||
-rw-r--r-- | mesonbuild/interpreterbase.py | 17 |
3 files changed, 19 insertions, 0 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py index f3313f3f9..6540455a8 100644 --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py @@ -23,6 +23,7 @@ import ast import argparse version = '0.47.0.dev1' +target_version = '' backendlist = ['ninja', 'vs', 'vs2010', 'vs2015', 'vs2017', 'xcode'] default_yielding = False diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 4f2d45eae..21f66cdea 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2285,6 +2285,7 @@ to directly access options of other subprojects.''') if 'meson_version' in kwargs: cv = coredata.version pv = kwargs['meson_version'] + coredata.target_version = pv if not mesonlib.version_compare(cv, pv): raise InterpreterException('Meson version is %s but project requires %s.' % (cv, pv)) self.build.projects[self.subproject] = proj_name diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index 9f323d113..52dad724d 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -17,6 +17,7 @@ from . import mparser, mesonlib, mlog from . import environment, dependencies +from . import coredata import os, copy, re, types from functools import wraps @@ -123,6 +124,22 @@ class permittedKwargs: return f(*wrapped_args, **wrapped_kwargs) return wrapped +class featureVersion: + """Checks for newer/deprecated features""" + + def __init__(self, feature_name, wanted_version): + self.feature_name = feature_name + self.wanted_version = wanted_version + + def __call__(self, f): + @wraps(f) + def wrapped(*wrapped_args, **wrapped_kwargs): + tv = coredata.target_version + if tv == '': + return + return f(*wrapped_args, **wrapped_kwargs) + return wrapped + class InterpreterException(mesonlib.MesonException): pass |