[llvm-branch-commits] [cfe-branch] r143938 - in /cfe/branches/release_30: ./ test/lit.cfg

Chandler Carruth chandlerc at gmail.com
Mon Nov 7 02:28:09 PST 2011


Author: chandlerc
Date: Mon Nov  7 04:28:08 2011
New Revision: 143938

URL: http://llvm.org/viewvc/llvm-project?rev=143938&view=rev
Log:
Merging r143823:
------------------------------------------------------------------------
r143823 | chandlerc | 2011-11-05 13:55:50 -0700 (Sat, 05 Nov 2011) | 4 lines

Teach lit to ask the Clang it is running what version string to use
rather than presuming that it is 3.0. This is extra important as the
version should be 3.1, but CMake hasn't caught up with the times.
That'll be fixed in a separate commit.
------------------------------------------------------------------------

Modified:
    cfe/branches/release_30/   (props changed)
    cfe/branches/release_30/test/lit.cfg

Propchange: cfe/branches/release_30/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov  7 04:28:08 2011
@@ -1,3 +1,3 @@
 /cfe/branches/type-system-rewrite:134693-134817
-/cfe/trunk:142113,142133-142134,142187,142349,142474,142476,142918,143344-143345,143684,143686-143687,143751-143752,143798,143801,143804-143807,143822
+/cfe/trunk:142113,142133-142134,142187,142349,142474,142476,142918,143344-143345,143684,143686-143687,143751-143752,143798,143801,143804-143807,143822-143823
 /cfe/trunk/test/SemaTemplate:126920

Modified: cfe/branches/release_30/test/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_30/test/lit.cfg?rev=143938&r1=143937&r2=143938&view=diff
==============================================================================
--- cfe/branches/release_30/test/lit.cfg (original)
+++ cfe/branches/release_30/test/lit.cfg Mon Nov  7 04:28:08 2011
@@ -2,6 +2,9 @@
 
 import os
 import platform
+import re
+import subprocess
+
 
 # Configuration file for the 'lit' test runner.
 
@@ -145,11 +148,22 @@
 # Note that when substituting %clang_cc1 also fill in the include directory of
 # the builtin headers. Those are part of even a freestanding environment, but
 # Clang relies on the driver to locate them.
-# FIXME: It might be nice to teach the frontend how to find its builtin headers
-# in some limited cases when the driver provides no hints.
+def getClangVersion(clang):
+    # FIXME: Rather than just getting the version, we should have clang print
+    # out its resource dir here in an easy to scrape form.
+    cmd = subprocess.Popen([clang, '-v'], stderr=subprocess.PIPE)
+
+    for line in cmd.stderr:
+        m = re.match( r'^clang version ([^ ]+) ', line)
+        if m is not None:
+            return m.group(1)
+
+    lit.fatal("Couldn't find the version of Clang ('%s')" % clang)
+
 clang_directory = os.path.dirname(os.path.realpath(config.clang))
 clang_builtin_includes = os.path.join(os.path.dirname(clang_directory),
-                                      'lib', 'clang', '3.0', 'include')
+                                      'lib', 'clang',
+                                      getClangVersion(config.clang), 'include')
 config.substitutions.append( ('%clang_cc1',
                               '%s -cc1 -internal-nosysroot-isystem %s'
                               % (config.clang, clang_builtin_includes)) )
@@ -187,10 +201,6 @@
     config.available_features.add('shell')
 
 # Registered Targets
-import subprocess
-import re
-import os
-
 def getRegisteredTargets(tool):
     set_of_targets = set()
 





More information about the llvm-branch-commits mailing list