aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2018-04-10 15:01:05 -0400
committerJussi Pakkanen <jpakkane@gmail.com>2018-10-23 22:09:55 +0300
commit61348da069bd3afe28a9de03e7792e20a9cb2eac (patch)
tree1db7fc90efbda6f95d7c5332788ca7b3da88e95f /mesonbuild/interpreter.py
parent87355c81326edd253f433f08e8d58f9df059951f (diff)
downloadmeson-61348da069bd3afe28a9de03e7792e20a9cb2eac.zip
meson-61348da069bd3afe28a9de03e7792e20a9cb2eac.tar.gz
meson-61348da069bd3afe28a9de03e7792e20a9cb2eac.tar.bz2
Add 'disabler' argument to functions returning not-found objects
When dependency(), find_library(), find_program(), or python.find_installation() return a not-found object and disabler is true, they return a Disabler object instead.
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 98424ec..66f7f02 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -27,7 +27,7 @@ from .dependencies import InternalDependency, Dependency, NotFoundDependency, De
from .interpreterbase import InterpreterBase
from .interpreterbase import check_stringlist, flatten, noPosargs, noKwargs, stringArgs, permittedKwargs, noArgsFlattening
from .interpreterbase import InterpreterException, InvalidArguments, InvalidCode, SubdirDoneRequest
-from .interpreterbase import InterpreterObject, MutableInterpreterObject, Disabler
+from .interpreterbase import InterpreterObject, MutableInterpreterObject, Disabler, disablerIfNotFound
from .interpreterbase import FeatureNew, FeatureDeprecated, FeatureNewKwargs
from .interpreterbase import ObjectHolder
from .modules import ModuleReturnValue
@@ -1381,6 +1381,8 @@ class CompilerHolder(InterpreterObject):
mlog.log('Header <{0}> has symbol "{1}":'.format(hname, symbol), h)
return haz
+ @FeatureNewKwargs('compiler.find_library', '0.49.0', ['disabler'])
+ @disablerIfNotFound
@permittedKwargs({
'required',
'dirs',
@@ -2776,6 +2778,8 @@ external dependencies (including libraries) must go to "dependencies".''')
self.store_name_lookups(args)
return progobj
+ @FeatureNewKwargs('find_program', '0.49.0', ['disabler'])
+ @disablerIfNotFound
@permittedKwargs(permitted_kwargs['find_program'])
def func_find_program(self, node, args, kwargs):
if not args:
@@ -2902,8 +2906,10 @@ external dependencies (including libraries) must go to "dependencies".''')
elif name == 'openmp':
FeatureNew('OpenMP Dependency', '0.46.0').use(self.subproject)
+ @FeatureNewKwargs('dependency', '0.49.0', ['disabler'])
@FeatureNewKwargs('dependency', '0.40.0', ['method'])
@FeatureNewKwargs('dependency', '0.38.0', ['default_options'])
+ @disablerIfNotFound
@permittedKwargs(permitted_kwargs['dependency'])
def func_dependency(self, node, args, kwargs):
self.validate_arguments(args, 1, [str])