1 #!/usr/bin/python 2 3 # Copyright (c) 2009 The Chromium Authors. All rights reserved. 4 # Use of this source code is governed by a BSD-style license that can be 5 # found in the LICENSE file. 6 7 """Compiler version checking tool for gcc 8 9 Print gcc version as XY if you are running gcc X.Y.*. 10 This is used to tweak build flags for gcc 4.4. 11 """ 12 13 import os 14 import re 15 import subprocess 16 import sys 17 18 def GetVersion(compiler): 19 try: 20 # Note that compiler could be something tricky like "distcc g++". 21 compiler = compiler + " -dumpversion" 22 pipe = subprocess.Popen(compiler, stdout=subprocess.PIPE, shell=True) 23 gcc_output = pipe.communicate()[0] 24 result = re.match(r"(\d+)\.(\d+)", gcc_output) 25 return result.group(1) + result.group(2) 26 except Exception, e: 27 print >> sys.stderr, "compiler_version.py failed to execute:", compiler 28 print >> sys.stderr, e 29 return "" 30 31 def main(): 32 # Check if CXX environment variable exists and 33 # if it does use that compiler. 34 cxx = os.getenv("CXX", None) 35 if cxx: 36 cxxversion = GetVersion(cxx) 37 if cxxversion != "": 38 print cxxversion 39 return 0 40 else: 41 # Otherwise we check the g++ version. 42 gccversion = GetVersion("g++") 43 if gccversion != "": 44 print gccversion 45 return 0 46 47 return 1 48 49 if __name__ == "__main__": 50 sys.exit(main()) 51