From fcc7f039ec1b4de3e7de43abcc6de6f3eb16076c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tarek=20Ziad=C3=A9?= Date: Mon, 18 May 2009 08:03:37 +0000 Subject: [PATCH] Fixed the library extension when distutils build_ext is used inplace --- Lib/distutils/command/build_ext.py | 6 +++--- Lib/distutils/tests/test_build_ext.py | 11 ++++------- Misc/NEWS | 3 +++ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 10d50fade72..0c77aaa665a 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -649,7 +649,8 @@ class build_ext (Command): base = modpath[-1] build_py = self.get_finalized_command('build_py') package_dir = os.path.abspath(build_py.get_package_dir(package)) - return os.path.join(package_dir, base) + filename = self.get_ext_filename(ext_name) + return os.path.join(package_dir, filename) else: filename = self.get_ext_filename(ext_name) return os.path.join(self.build_lib, filename) @@ -663,12 +664,11 @@ class build_ext (Command): else: return self.package + '.' + ext_name - def get_ext_filename (self, ext_name): + def get_ext_filename(self, ext_name): r"""Convert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). """ - from distutils.sysconfig import get_config_var ext_path = string.split(ext_name, '.') # OS/2 has an 8 character module (extension) limit :-( diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py index 7e3f7165004..f1f80bea5d3 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -19,12 +19,6 @@ from test import test_support # Don't load the xx module more than once. ALREADY_TESTED = False -if sys.platform != 'win32': - UNDER_MSVC8 = False -else: - from distutils.msvccompiler import get_build_version - UNDER_MSVC8 = get_build_version() < 8.0 - def _get_source_filename(): srcdir = sysconfig.get_config_var('srcdir') return os.path.join(srcdir, 'Modules', 'xxmodule.c') @@ -299,7 +293,6 @@ class BuildExtTestCase(support.TempdirManager, cmd.run() self.assertEquals(cmd.compiler, 'unix') - @unittest.skipIf(UNDER_MSVC8, 'not running this test for MSVC < 8') def test_get_outputs(self): tmp_dir = self.mkdtemp() c_file = os.path.join(tmp_dir, 'foo.c') @@ -329,6 +322,8 @@ class BuildExtTestCase(support.TempdirManager, finally: os.chdir(old_wd) self.assert_(os.path.exists(so_file)) + self.assertEquals(os.path.splitext(so_file)[-1], + sysconfig.get_config_var('SO')) so_dir = os.path.dirname(so_file) self.assertEquals(so_dir, other_tmp_dir) @@ -336,6 +331,8 @@ class BuildExtTestCase(support.TempdirManager, cmd.run() so_file = cmd.get_outputs()[0] self.assert_(os.path.exists(so_file)) + self.assertEquals(os.path.splitext(so_file)[-1], + sysconfig.get_config_var('SO')) so_dir = os.path.dirname(so_file) self.assertEquals(so_dir, cmd.build_lib) diff --git a/Misc/NEWS b/Misc/NEWS index 82d0e1d30d6..27e4127f700 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -298,6 +298,9 @@ Core and Builtins Library ------- +- Issue #6046: Fixed the library extension when distutils build_ext is used + inplace. Initial patch by Roumen Petrov. + - Issue #6041: Now distutils `sdist` and `register` commands use `check` as a subcommand.