[Python-checkins] distutils2: Fix parsing of build_ext --libraries option (#1326113)

eric.araujo python-checkins at python.org
Wed Feb 15 17:39:57 CET 2012


http://hg.python.org/distutils2/rev/60dd0041c9bc
changeset:   1285:60dd0041c9bc
parent:      1282:0cc1fbbb473d
user:        Éric Araujo <merwok at netwok.org>
date:        Wed Feb 15 17:34:16 2012 +0100
summary:
  Fix parsing of build_ext --libraries option (#1326113)

files:
  CHANGES.txt                                |   2 +
  distutils2/command/build_ext.py            |   3 +-
  distutils2/tests/test_command_build_ext.py |  12 +++++-----
  3 files changed, 9 insertions(+), 8 deletions(-)


diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -164,6 +164,8 @@
 - #11805: Add multiple value syntax for package_data in setup.cfg [éric]
 - #13712: Don't map package_data to extra_files when converting a setup.py
   script with pysetup create [éric]
+- #1326113: build_ext now correctly parses multiple values given to the
+  --libraries option [éric]
 
 
 1.0a3 - 2010-10-08
diff --git a/distutils2/command/build_ext.py b/distutils2/command/build_ext.py
--- a/distutils2/command/build_ext.py
+++ b/distutils2/command/build_ext.py
@@ -167,8 +167,7 @@
         if plat_py_include != py_include:
             self.include_dirs.append(plat_py_include)
 
-        if isinstance(self.libraries, basestring):
-            self.libraries = [self.libraries]
+        self.ensure_string_list('libraries')
 
         # Life is easier if we're not forever checking for None, so
         # simplify these options to empty lists if unset
diff --git a/distutils2/tests/test_command_build_ext.py b/distutils2/tests/test_command_build_ext.py
--- a/distutils2/tests/test_command_build_ext.py
+++ b/distutils2/tests/test_command_build_ext.py
@@ -147,21 +147,21 @@
         # make sure cmd.libraries is turned into a list
         # if it's a string
         cmd = build_ext(dist)
-        cmd.libraries = 'my_lib'
+        cmd.libraries = 'my_lib, other_lib lastlib'
         cmd.finalize_options()
-        self.assertEqual(cmd.libraries, ['my_lib'])
+        self.assertEqual(cmd.libraries, ['my_lib', 'other_lib', 'lastlib'])
 
         # make sure cmd.library_dirs is turned into a list
         # if it's a string
         cmd = build_ext(dist)
-        cmd.library_dirs = 'my_lib_dir'
+        cmd.library_dirs = 'my_lib_dir%sother_lib_dir' % os.pathsep
         cmd.finalize_options()
-        self.assertIn('my_lib_dir', cmd.library_dirs)
+        self.assertEqual(cmd.library_dirs, ['my_lib_dir', 'other_lib_dir'])
 
         # make sure rpath is turned into a list
-        # if it's a list of os.pathsep's paths
+        # if it's a string
         cmd = build_ext(dist)
-        cmd.rpath = os.pathsep.join(['one', 'two'])
+        cmd.rpath = 'one%stwo' % os.pathsep
         cmd.finalize_options()
         self.assertEqual(cmd.rpath, ['one', 'two'])
 

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


More information about the Python-checkins mailing list