diff options
Diffstat (limited to 'methods.py')
-rw-r--r-- | methods.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/methods.py b/methods.py index 5fdcc2c4b4..3f03e6bbd2 100644 --- a/methods.py +++ b/methods.py @@ -557,16 +557,19 @@ def is_vanilla_clang(env): def get_compiler_version(env): - if using_gcc(env): - version = decode_utf8(subprocess.check_output([env['CXX'], '-dumpversion']).strip()) - elif using_clang(env): - # Not using -dumpversion as it used to return 4.2.1: https://reviews.llvm.org/D56803 + """ + Returns an array of version numbers as ints: [major, minor, patch]. + The return array should have at least two values (major, minor). + """ + 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()) else: # TODO: Implement for MSVC return None - match = re.search('[0-9][0-9.]*', version) + match = re.search('[0-9]+\.[0-9.]+', version) if match is not None: - return match.group().split('.') + return list(map(int, match.group().split('.'))) else: return None |