]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fixed the library extension when distutils build_ext is used inplace
authorTarek Ziadé <ziade.tarek@gmail.com>
Mon, 18 May 2009 08:03:37 +0000 (08:03 +0000)
committerTarek Ziadé <ziade.tarek@gmail.com>
Mon, 18 May 2009 08:03:37 +0000 (08:03 +0000)
Lib/distutils/command/build_ext.py
Lib/distutils/tests/test_build_ext.py
Misc/NEWS

index 10d50fade7204faf0ed91fd31f4e24624812241c..0c77aaa665a93d2a0c8a279718c9d9baec99c57b 100644 (file)
@@ -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 :-(
index 7e3f71650044ea7262ba6f86e80172d5c410d3e1..f1f80bea5d392e2ed456fb3ac4b430e190fdc72a 100644 (file)
@@ -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)
 
index 82d0e1d30d610328a0d4e4e22d8d9ca4b3fd511c..27e4127f700435667f7baf7832fd1a9db561ea7d 100644 (file)
--- 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.