From 0ad56708955eaef47fcf854bbb00e9a0e54536c0 Mon Sep 17 00:00:00 2001 From: Jakub Adam Date: Thu, 28 Mar 2019 12:12:33 +0100 Subject: [PATCH] Fix run_command() with command on a different drive On Windows, program on a different drive than srcdir won't have an expressible relative path; cmd_path will be absolute instead and shouldn't get added into build_def_files. --- mesonbuild/interpreter.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 3d91dc91f..234b9832e 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2335,8 +2335,12 @@ external dependencies (including libraries) must go to "dependencies".''') 'or not executable'.format(cmd)) cmd = prog cmd_path = mesonlib.relpath(cmd.get_path(), start=srcdir) - if not cmd_path.startswith('..') and cmd_path not in self.build_def_files: - self.build_def_files.append(cmd_path) + if not cmd_path.startswith('..'): + # On Windows, program on a different drive than srcdir won't have + # an expressible relative path; cmd_path will be absolute instead. + if not os.path.isabs(cmd_path): + if cmd_path not in self.build_def_files: + self.build_def_files.append(cmd_path) expanded_args = [] for a in listify(cargs): if isinstance(a, str):