fixed the 'package' option of build_ext

This commit is contained in:
Tarek Ziadé 2009-05-19 16:17:21 +00:00
parent f03c42f0ab
commit 7d7127dd84
3 changed files with 38 additions and 11 deletions

View file

@ -642,19 +642,21 @@ class build_ext (Command):
The file is located in `build_lib` or directly in the package
(inplace option).
"""
if self.inplace:
fullname = self.get_ext_fullname(ext_name)
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))
filename = self.get_ext_filename(ext_name)
return os.path.join(package_dir, filename)
else:
filename = self.get_ext_filename(ext_name)
fullname = self.get_ext_fullname(ext_name)
filename = self.get_ext_filename(fullname)
if not self.inplace:
# no further work needed
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):
"""Returns the fullname of a given extension name.