Add basic code for feature version detection:

* store target version
* Add empty method decorator
pull/3486/head
Salamandar 7 years ago
parent 583e9c4af6
commit ee2f8a0416
  1. 1
      mesonbuild/coredata.py
  2. 1
      mesonbuild/interpreter.py
  3. 17
      mesonbuild/interpreterbase.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

@ -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

@ -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

Loading…
Cancel
Save