From f00e2ef96b4ddf082100ea9a60b680658a570456 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Mon, 12 Feb 2018 21:23:12 +0200 Subject: [PATCH] Use absolute path if relative can not be evaluated. Closes #2784. --- mesonbuild/interpreter.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 9a018bb65..8d8f0e7ca 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1670,7 +1670,14 @@ external dependencies (including libraries) must go to "dependencies".''') raise InterpreterException('Program or command {!r} not found ' 'or not executable'.format(cmd)) cmd = prog - cmd_path = os.path.relpath(cmd.get_path(), start=srcdir) + try: + cmd_path = os.path.relpath(cmd.get_path(), start=srcdir) + except ValueError: + # On Windows a relative path can't be evaluated for + # paths on two different drives (i.e. c:\foo and f:\bar). + # The only thing left to is is to use the original absolute + # path. + cmd_path = cmd.get_path() if not cmd_path.startswith('..') and cmd_path not in self.build_def_files: self.build_def_files.append(cmd_path) expanded_args = []