diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /media/webrtc/trunk/build/compiler_version.py | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'media/webrtc/trunk/build/compiler_version.py')
-rwxr-xr-x | media/webrtc/trunk/build/compiler_version.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/media/webrtc/trunk/build/compiler_version.py b/media/webrtc/trunk/build/compiler_version.py new file mode 100755 index 000000000..eae7b176d --- /dev/null +++ b/media/webrtc/trunk/build/compiler_version.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Compiler version checking tool for gcc + +Print gcc version as XY if you are running gcc X.Y.*. +This is used to tweak build flags for gcc 4.4. +""" + +import os +import re +import subprocess +import sys + +def GetVersion(compiler): + try: + # Note that compiler could be something tricky like "distcc g++". + compiler = compiler + " -dumpversion" + pipe = subprocess.Popen(compiler, shell=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + gcc_output, gcc_error = pipe.communicate() + if pipe.returncode: + raise subprocess.CalledProcessError(pipe.returncode, compiler) + + result = re.match(r"(\d+)\.(\d+)", gcc_output) + return result.group(1) + result.group(2) + except Exception, e: + if gcc_error: + sys.stderr.write(gcc_error) + print >> sys.stderr, "compiler_version.py failed to execute:", compiler + print >> sys.stderr, e + return "" + +def GetVersionFromEnvironment(compiler_env): + """ Returns the version of compiler + + If the compiler was set by the given environment variable and exists, + return its version, otherwise None is returned. + """ + cxx = os.getenv(compiler_env, None) + if cxx: + cxx_version = GetVersion(cxx) + if cxx_version != "": + return cxx_version + return None + +def main(): + # Check if CXX_target or CXX environment variable exists an if it does use + # that compiler. + # TODO: Fix ninja (see http://crbug.com/140900) instead and remove this code + # In ninja's cross compile mode, the CXX_target is target compiler, while + # the CXX is host. The CXX_target needs be checked first, though the target + # and host compiler have different version, there seems no issue to use the + # target compiler's version number as gcc_version in Android. + cxx_version = GetVersionFromEnvironment("CXX_target") + if cxx_version: + print cxx_version + return 0 + + cxx_version = GetVersionFromEnvironment("CXX") + if cxx_version: + print cxx_version + return 0 + + # Otherwise we check the g++ version. + gccversion = GetVersion("g++") + if gccversion != "": + print gccversion + return 0 + + return 1 + +if __name__ == "__main__": + sys.exit(main()) |