aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2018-12-29 16:40:34 -0500
committerXavier Claessens <xclaesse@gmail.com>2019-01-16 11:16:46 -0500
commitbdf301d05beb22305cfbdbf7b0ed6f600862e03f (patch)
treedecd07ff03fa52f4091a44549b66cafc9d0146dc /mesonbuild/interpreter.py
parentf6a34c8aafb7fc697360070d1b47f1c804c48a7c (diff)
downloadmeson-bdf301d05beb22305cfbdbf7b0ed6f600862e03f.zip
meson-bdf301d05beb22305cfbdbf7b0ed6f600862e03f.tar.gz
meson-bdf301d05beb22305cfbdbf7b0ed6f600862e03f.tar.bz2
do_subproject: InvalidCode is always an error
Not need to catch exceptions in dependency_fallback(), it's already handled in do_subproject(). This ensure subproject errors are handled the same way when doing dependency() fallback and when doing subproject().
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py24
1 files changed, 5 insertions, 19 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index bb4d624..16d4ced 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2415,6 +2415,9 @@ external dependencies (including libraries) must go to "dependencies".''')
current_active = self.active_projectname
subi.run()
mlog.log('\nSubproject', mlog.bold(dirname), 'finished.')
+ # Invalid code is always an error
+ except InvalidCode:
+ raise
except Exception as e:
if not required:
mlog.log(e)
@@ -3069,25 +3072,8 @@ external dependencies (including libraries) must go to "dependencies".''')
mlog.log('Looking for a fallback subproject for the dependency',
mlog.bold(display_name))
dirname, varname = self.get_subproject_infos(kwargs)
- # Try to execute the subproject
- try:
- sp_kwargs = {'default_options': kwargs.get('default_options', [])}
- self.do_subproject(dirname, sp_kwargs)
- # Invalid code is always an error
- except InvalidCode:
- raise
- # If the subproject execution failed in a non-fatal way, don't raise an
- # exception; let the caller handle things.
- except Exception as e:
- msg = ['Couldn\'t use fallback subproject in',
- mlog.bold(os.path.join(self.subproject_dir, dirname)),
- 'for the dependency', mlog.bold(display_name), '\nReason:']
- if isinstance(e, mesonlib.MesonException):
- msg.append(e.get_msg_with_context())
- else:
- msg.append(traceback.format_exc())
- mlog.log(*msg)
- return None
+ sp_kwargs = {'default_options': kwargs.get('default_options', [])}
+ self.do_subproject(dirname, sp_kwargs)
return self.get_subproject_dep(display_name, dirname, varname, kwargs)
@FeatureNewKwargs('executable', '0.42.0', ['implib'])