diff --git a/mesonbuild/modules/unstable_external_project.py b/mesonbuild/modules/unstable_external_project.py index 1604e25de..e2205e5f6 100644 --- a/mesonbuild/modules/unstable_external_project.py +++ b/mesonbuild/modules/unstable_external_project.py @@ -162,12 +162,17 @@ class ExternalProject(InterpreterObject): def _run(self, step: str, command: T.List[str]): mlog.log('External project {}:'.format(self.name), mlog.bold(step)) - output = None if self.verbose else subprocess.DEVNULL + log_filename = Path(mlog.log_dir, '{}-{}.log'.format(self.name, step)) + output = None + if not self.verbose: + output = open(log_filename, 'w') p, o, e = Popen_safe(command, cwd=str(self.build_dir), env=self.run_env, stderr=subprocess.STDOUT, stdout=output) if p.returncode != 0: - m = '{} step failed:\n{}'.format(step, e) + m = '{} step returned error code {}.'.format(step, p.returncode) + if not self.verbose: + m += '\nSee logs: ' + str(log_filename) raise MesonException(m) def _create_targets(self):