From df7ecfc4a7f8403144be2aa49bb47f9ead25926b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Wed, 4 Mar 2020 14:36:57 +0100 Subject: [PATCH] SCons: Expand env variables to check compiler version Scons' `Environment.subst()` does that, and was already used in the other place where we query an env variable (`env["LINK"]` in x11 code). Fixes `3.2` iOS build after cherry-pick of #36559 (previously it only ran for GCC code, not iOS's Clang), and the same issue would likely affect `master` if iOS builds were enabled right now. --- methods.py | 7 +++++-- platform/x11/detect.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/methods.py b/methods.py index 3f03e6bbd21..28c6d0c0974 100644 --- a/methods.py +++ b/methods.py @@ -1,5 +1,4 @@ import os -import os.path import re import glob import subprocess @@ -564,7 +563,11 @@ def get_compiler_version(env): if not env.msvc: # Not using -dumpversion as some GCC distros only return major, and # Clang used to return hardcoded 4.2.1: # https://reviews.llvm.org/D56803 - version = decode_utf8(subprocess.check_output([env['CXX'], '--version']).strip()) + try: + version = decode_utf8(subprocess.check_output([env.subst(env['CXX']), '--version']).strip()) + except (subprocess.CalledProcessError, OSError): + print("Couldn't parse CXX environment variable to infer compiler version.") + return None else: # TODO: Implement for MSVC return None match = re.search('[0-9]+\.[0-9.]+', version) diff --git a/platform/x11/detect.py b/platform/x11/detect.py index cd22ee9ff69..8952aa5e824 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -1,7 +1,7 @@ import os import platform import sys -from methods import get_compiler_version, using_gcc, using_clang +from methods import using_gcc, using_clang def is_active():