[Python-checkins] distutils2: Parsing compiler arguments with shlex.split

tarek.ziade python-checkins at python.org
Sun Jan 30 14:49:25 CET 2011


tarek.ziade pushed 5d00f818f749 to distutils2:

http://hg.python.org/distutils2/rev/5d00f818f749
changeset:   969:5d00f818f749
user:        Andre Espaze <andre.espaze at logilab.fr>
date:        Sun Jan 30 11:56:32 2011 +0100
summary:
  Parsing compiler arguments with shlex.split

Thanks to Julien Jehannet for the tip.

files:
  distutils2/config.py
  distutils2/tests/test_config.py

diff --git a/distutils2/config.py b/distutils2/config.py
--- a/distutils2/config.py
+++ b/distutils2/config.py
@@ -6,6 +6,7 @@
 import re
 import sys
 from ConfigParser import RawConfigParser
+from shlex import split
 
 from distutils2 import logger
 from distutils2.errors import DistutilsOptionError
@@ -17,15 +18,9 @@
 
 def _pop_values(values_dct, key):
     """Remove values from the dictionary and convert them as a list"""
-    vals_str = values_dct.pop(key, None)
-    if not vals_str:
-        return
+    vals_str = values_dct.pop(key, '')
     # Get bash options like `gcc -print-file-name=libgcc.a`
-    vals = re.search('(`.*?`)', vals_str) or []
-    if vals:
-        vals = list(vals.groups())
-        vals_str = re.sub('`.*?`', '', vals_str)
-    vals.extend(vals_str.split())
+    vals = split(vals_str)
     if vals:
         return vals
 
diff --git a/distutils2/tests/test_config.py b/distutils2/tests/test_config.py
--- a/distutils2/tests/test_config.py
+++ b/distutils2/tests/test_config.py
@@ -103,7 +103,7 @@
 [extension=speed_coconuts]
 name = one.speed_coconuts
 sources = c_src/speed_coconuts.c
-extra_link_args = `gcc -print-file-name=libgcc.a` -shared
+extra_link_args = "`gcc -print-file-name=libgcc.a`" -shared
 define_macros = HAVE_CAIRO HAVE_GTK2
 
 [extension=fast_taunt]

--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list