mirror of https://github.com/python/cpython
Merged revisions 72781 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r72781 | tarek.ziade | 2009-05-19 18:17:21 +0200 (Tue, 19 May 2009) | 1 line fixed the 'package' option of build_ext ........
This commit is contained in:
parent
3b3ddb8828
commit
82313d8ffe
|
@ -628,19 +628,21 @@ class build_ext (Command):
|
||||||
The file is located in `build_lib` or directly in the package
|
The file is located in `build_lib` or directly in the package
|
||||||
(inplace option).
|
(inplace option).
|
||||||
"""
|
"""
|
||||||
if self.inplace:
|
fullname = self.get_ext_fullname(ext_name)
|
||||||
fullname = self.get_ext_fullname(ext_name)
|
filename = self.get_ext_filename(fullname)
|
||||||
modpath = fullname.split('.')
|
if not self.inplace:
|
||||||
package = '.'.join(modpath[0:-1])
|
# no further work needed
|
||||||
base = modpath[-1]
|
|
||||||
build_py = self.get_finalized_command('build_py')
|
|
||||||
package_dir = os.path.abspath(build_py.get_package_dir(package))
|
|
||||||
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)
|
return os.path.join(self.build_lib, filename)
|
||||||
|
|
||||||
|
# the inplace option requires to find the package directory
|
||||||
|
# using the build_py command
|
||||||
|
modpath = fullname.split('.')
|
||||||
|
package = '.'.join(modpath[0:-1])
|
||||||
|
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, filename)
|
||||||
|
|
||||||
def get_ext_fullname(self, ext_name):
|
def get_ext_fullname(self, ext_name):
|
||||||
"""Returns the fullname of a given extension name.
|
"""Returns the fullname of a given extension name.
|
||||||
|
|
||||||
|
|
|
@ -273,6 +273,28 @@ class BuildExtTestCase(support.TempdirManager,
|
||||||
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)
|
||||||
|
|
||||||
|
# inplace = 0, cmd.package = 'bar'
|
||||||
|
cmd.package = 'bar'
|
||||||
|
path = cmd.get_ext_fullpath('foo')
|
||||||
|
# checking that the last directory is bar
|
||||||
|
path = os.path.split(path)[0]
|
||||||
|
lastdir = os.path.split(path)[-1]
|
||||||
|
self.assertEquals(lastdir, cmd.package)
|
||||||
|
|
||||||
|
# inplace = 1, cmd.package = 'bar'
|
||||||
|
cmd.inplace = 1
|
||||||
|
other_tmp_dir = os.path.realpath(self.mkdtemp())
|
||||||
|
old_wd = os.getcwd()
|
||||||
|
os.chdir(other_tmp_dir)
|
||||||
|
try:
|
||||||
|
path = cmd.get_ext_fullpath('foo')
|
||||||
|
finally:
|
||||||
|
os.chdir(old_wd)
|
||||||
|
# checking that the last directory is bar
|
||||||
|
path = os.path.split(path)[0]
|
||||||
|
lastdir = os.path.split(path)[-1]
|
||||||
|
self.assertEquals(lastdir, cmd.package)
|
||||||
|
|
||||||
def test_suite():
|
def test_suite():
|
||||||
if not sysconfig.python_build:
|
if not sysconfig.python_build:
|
||||||
if test_support.verbose:
|
if test_support.verbose:
|
||||||
|
|
|
@ -198,6 +198,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #6062: In distutils, fixed the package option of build_ext. Feedback
|
||||||
|
and tests on pywin32 by Tim Golden.
|
||||||
|
|
||||||
- Issue #6046: Fixed the library extension when distutils build_ext is used
|
- Issue #6046: Fixed the library extension when distutils build_ext is used
|
||||||
inplace. Initial patch by Roumen Petrov.
|
inplace. Initial patch by Roumen Petrov.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue