From afdaedea01e372ab783477e6f2ce0ca81797be07 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Tue, 21 Feb 2017 04:48:56 +0530 Subject: [PATCH] msvc: Split stderr by line and raise exception if empty std.split() splits on whitespace, but we want the first line. --- mesonbuild/environment.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py index ed5a216ed..29ff19e2d 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py @@ -537,7 +537,10 @@ class Environment: # Visual Studio prints version number to stderr but # everything else to stdout. Why? Lord only knows. version = search_version(err) - is_64 = err.split()[0].endswith(' x64') + if not err or not err.split('\n')[0]: + m = 'Failed to detect MSVC compiler arch: stderr was\n{!r}' + raise EnvironmentException(m.format(err)) + is_64 = err.split('\n')[0].endswith(' x64') cls = VisualStudioCCompiler if lang == 'c' else VisualStudioCPPCompiler return cls(compiler, version, is_cross, exe_wrap, is_64) if '(ICC)' in out: