From: Éric Araujo Date: Wed, 15 Feb 2012 15:28:20 +0000 (+0100) Subject: Fix parsing of build_ext --libraries option (#1326113) X-Git-Tag: v2.7.3rc1~55 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e897a7472ded10a29ffcf046d021cd7fdc1ac94e;p=thirdparty%2FPython%2Fcpython.git Fix parsing of build_ext --libraries option (#1326113) --- diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 55a4288ac007..923197bac436 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -160,8 +160,7 @@ class build_ext (Command): if plat_py_include != py_include: self.include_dirs.append(plat_py_include) - if isinstance(self.libraries, str): - 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/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py index 2fa63d300bb5..198cce325707 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -150,21 +150,21 @@ class BuildExtTestCase(support.TempdirManager, # 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.assertTrue('my_lib_dir' in 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']) diff --git a/Misc/NEWS b/Misc/NEWS index 7fc224ab6c41..474609e82bde 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -102,6 +102,9 @@ Library - Issue #13979: A bug in ctypes.util.find_library that caused the wrong library name to be returned has been fixed. +- Issue #1326113: distutils' build_ext command --libraries option now + correctly parses multiple values separated by whitespace or commas. + - Issue #13993: HTMLParser is now able to handle broken end tags. - Issue #13960: HTMLParser is now able to handle broken comments.