WebKit roll 98705:98715
[chromium-blink-merge.git] / build / compiler_version.py
blob69f0a50be0b298c5b02f34d6571c4a99aff6dbf5
1 #!/usr/bin/python
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.
7 """Compiler version checking tool for gcc
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 """
13 import os
14 import re
15 import subprocess
16 import sys
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 ""
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
47 return 1
49 if __name__ == "__main__":
50 sys.exit(main())