]> granicus.if.org Git - python/commitdiff
bpo-33692: Update pythoninfo from master (GH-7301)
authorVictor Stinner <vstinner@redhat.com>
Fri, 1 Jun 2018 10:09:59 +0000 (12:09 +0200)
committerGitHub <noreply@github.com>
Fri, 1 Jun 2018 10:09:59 +0000 (12:09 +0200)
* bpo-33717: pythoninfo: add CC --version (GH-7290)

Lib/test/pythoninfo.py

index 26f493ee29ff457f86a15511eaf5184a18778d80..9242a36bedd68b2447d40da3b5f6eec51cf1b1ab 100644 (file)
@@ -497,6 +497,34 @@ def collect_test_support(info_add):
     call_func(info_add, 'test_support.python_is_optimized', support, 'python_is_optimized')
 
 
+def collect_cc(info_add):
+    import subprocess
+    import sysconfig
+
+    CC = sysconfig.get_config_var('CC')
+    if not CC:
+        return
+
+    try:
+        import shlex
+        args = shlex.split(CC)
+    except ImportError:
+        args = CC.split()
+    args.append('--version')
+    proc = subprocess.Popen(args,
+                            stdout=subprocess.PIPE,
+                            stderr=subprocess.STDOUT,
+                            universal_newlines=True)
+    stdout = proc.communicate()[0]
+    if proc.returncode:
+        # CC --version failed: ignore error
+        return
+
+    text = stdout.splitlines()[0]
+    text = normalize_text(text)
+    info_add('CC.version', text)
+
+
 def collect_info(info):
     error = False
     info_add = info.add
@@ -523,6 +551,7 @@ def collect_info(info):
         collect_decimal,
         collect_testcapi,
         collect_resource,
+        collect_cc,
 
         # Collecting from tests should be last as they have side effects.
         collect_test_socket,