Commit 543f2438 authored by Thomas Heller's avatar Thomas Heller

Set the 'nt' installation scheme for the install command even if run

on other systems, so that data, headers, scripts are included in
the installer.
parent a05fa1d9
...@@ -74,6 +74,17 @@ class bdist_wininst (Command): ...@@ -74,6 +74,17 @@ class bdist_wininst (Command):
install = self.reinitialize_command('install') install = self.reinitialize_command('install')
install.root = self.bdist_dir install.root = self.bdist_dir
if os.name != 'nt':
# must force install to use the 'nt' scheme
install.select_scheme ('nt')
# change the backslash to the current pathname separator
for key in ('purelib', 'platlib', 'headers', 'scripts',
'data'):
attrname = 'install_' + key
attr = getattr (install, attrname)
if attr:
attr = string.replace (attr, '\\', os.sep)
setattr (install, attrname, attr)
install_lib = self.reinitialize_command('install_lib') install_lib = self.reinitialize_command('install_lib')
# we do not want to include pyc or pyo files # we do not want to include pyc or pyo files
...@@ -99,14 +110,20 @@ class bdist_wininst (Command): ...@@ -99,14 +110,20 @@ class bdist_wininst (Command):
archive_basename = os.path.join(self.bdist_dir, archive_basename = os.path.join(self.bdist_dir,
"%s.win32" % fullname) "%s.win32" % fullname)
# XXX hack! Our archive MUST be relative to sys.prefix # Our archive MUST be relative to sys.prefix, which is the
# XXX What about .install_data, .install_scripts, ...? # same as install_lib in the 'nt' scheme.
# [Perhaps require that all installation dirs be under sys.prefix root_dir = os.path.normpath (install.install_lib)
# on Windows? this will be acceptable until we start dealing
# with Python applications, at which point we should zip up # Sanity check: Make sure everything is included
# the application directory -- and again everything can be for key in ('purelib', 'platlib', 'headers', 'scripts', 'data'):
# under one dir --GPW] attrname = 'install_' + key
root_dir = install.install_lib install_x = getattr (install, attrname)
# (Use normpath so that we can string.find to look for
# subdirectories)
install_x = os.path.normpath (install_x)
if string.find (install_x, root_dir) != 0:
raise DistutilsInternalError \
("'%s' not included in install_lib" % key)
arcname = self.make_archive (archive_basename, "zip", arcname = self.make_archive (archive_basename, "zip",
root_dir=root_dir) root_dir=root_dir)
self.create_exe (arcname, fullname) self.create_exe (arcname, fullname)
......
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