Commit fba15990 authored by Tarek Ziadé's avatar Tarek Ziadé

Fixed the library extension when distutils build_ext is used inplace

parent 535f0f46
...@@ -649,7 +649,8 @@ class build_ext (Command): ...@@ -649,7 +649,8 @@ class build_ext (Command):
base = modpath[-1] base = modpath[-1]
build_py = self.get_finalized_command('build_py') build_py = self.get_finalized_command('build_py')
package_dir = os.path.abspath(build_py.get_package_dir(package)) 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: else:
filename = self.get_ext_filename(ext_name) filename = self.get_ext_filename(ext_name)
return os.path.join(self.build_lib, filename) return os.path.join(self.build_lib, filename)
...@@ -663,12 +664,11 @@ class build_ext (Command): ...@@ -663,12 +664,11 @@ class build_ext (Command):
else: else:
return self.package + '.' + ext_name 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 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 of the file from which it will be loaded (eg. "foo/bar.so", or
"foo\bar.pyd"). "foo\bar.pyd").
""" """
from distutils.sysconfig import get_config_var from distutils.sysconfig import get_config_var
ext_path = string.split(ext_name, '.') ext_path = string.split(ext_name, '.')
# OS/2 has an 8 character module (extension) limit :-( # OS/2 has an 8 character module (extension) limit :-(
......
...@@ -19,12 +19,6 @@ from test import test_support ...@@ -19,12 +19,6 @@ from test import test_support
# Don't load the xx module more than once. # Don't load the xx module more than once.
ALREADY_TESTED = False 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(): def _get_source_filename():
srcdir = sysconfig.get_config_var('srcdir') srcdir = sysconfig.get_config_var('srcdir')
return os.path.join(srcdir, 'Modules', 'xxmodule.c') return os.path.join(srcdir, 'Modules', 'xxmodule.c')
...@@ -299,7 +293,6 @@ class BuildExtTestCase(support.TempdirManager, ...@@ -299,7 +293,6 @@ class BuildExtTestCase(support.TempdirManager,
cmd.run() cmd.run()
self.assertEquals(cmd.compiler, 'unix') self.assertEquals(cmd.compiler, 'unix')
@unittest.skipIf(UNDER_MSVC8, 'not running this test for MSVC < 8')
def test_get_outputs(self): def test_get_outputs(self):
tmp_dir = self.mkdtemp() tmp_dir = self.mkdtemp()
c_file = os.path.join(tmp_dir, 'foo.c') c_file = os.path.join(tmp_dir, 'foo.c')
...@@ -329,6 +322,8 @@ class BuildExtTestCase(support.TempdirManager, ...@@ -329,6 +322,8 @@ class BuildExtTestCase(support.TempdirManager,
finally: finally:
os.chdir(old_wd) os.chdir(old_wd)
self.assert_(os.path.exists(so_file)) 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) so_dir = os.path.dirname(so_file)
self.assertEquals(so_dir, other_tmp_dir) self.assertEquals(so_dir, other_tmp_dir)
...@@ -336,6 +331,8 @@ class BuildExtTestCase(support.TempdirManager, ...@@ -336,6 +331,8 @@ class BuildExtTestCase(support.TempdirManager,
cmd.run() cmd.run()
so_file = cmd.get_outputs()[0] so_file = cmd.get_outputs()[0]
self.assert_(os.path.exists(so_file)) 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) so_dir = os.path.dirname(so_file)
self.assertEquals(so_dir, cmd.build_lib) self.assertEquals(so_dir, cmd.build_lib)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment