summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/command/bdist_wininst.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/distutils/command/bdist_wininst.py')
-rw-r--r--Lib/distutils/command/bdist_wininst.py28
1 files changed, 20 insertions, 8 deletions
diff --git a/Lib/distutils/command/bdist_wininst.py b/Lib/distutils/command/bdist_wininst.py
index 2d75a38..bf8d022 100644
--- a/Lib/distutils/command/bdist_wininst.py
+++ b/Lib/distutils/command/bdist_wininst.py
@@ -19,6 +19,9 @@ class bdist_wininst(Command):
user_options = [('bdist-dir=', None,
"temporary directory for creating the distribution"),
+ ('plat-name=', 'p',
+ "platform name to embed in generated filenames "
+ "(default: %s)" % get_platform()),
('keep-temp', 'k',
"keep the pseudo-installation tree around after " +
"creating the distribution archive"),
@@ -52,6 +55,7 @@ class bdist_wininst(Command):
def initialize_options(self):
self.bdist_dir = None
+ self.plat_name = None
self.keep_temp = 0
self.no_target_compile = 0
self.no_target_optimize = 0
@@ -78,7 +82,10 @@ class bdist_wininst(Command):
" option must be specified" % (short_version,))
self.target_version = short_version
- self.set_undefined_options('bdist', ('dist_dir', 'dist_dir'))
+ self.set_undefined_options('bdist',
+ ('dist_dir', 'dist_dir'),
+ ('plat_name', 'plat_name'),
+ )
if self.install_script:
for script in self.distribution.scripts:
@@ -104,6 +111,7 @@ class bdist_wininst(Command):
install.root = self.bdist_dir
install.skip_build = self.skip_build
install.warn_dir = 0
+ install.plat_name = self.plat_name
install_lib = self.reinitialize_command('install_lib')
# we do not want to include pyc or pyo files
@@ -121,7 +129,7 @@ class bdist_wininst(Command):
if not target_version:
assert self.skip_build, "Should have already checked this"
target_version = sys.version[0:3]
- plat_specifier = ".%s-%s" % (get_platform(), target_version)
+ plat_specifier = ".%s-%s" % (self.plat_name, target_version)
build = self.get_finalized_command('build')
build.build_lib = os.path.join(build.build_base,
'lib' + plat_specifier)
@@ -267,11 +275,11 @@ class bdist_wininst(Command):
# if we create an installer for a specific python version,
# it's better to include this in the name
installer_name = os.path.join(self.dist_dir,
- "%s.win32-py%s.exe" %
- (fullname, self.target_version))
+ "%s.%s-py%s.exe" %
+ (fullname, self.plat_name, self.target_version))
else:
installer_name = os.path.join(self.dist_dir,
- "%s.win32.exe" % fullname)
+ "%s.%s.exe" % (fullname, self.plat_name))
return installer_name
def get_exe_bytes(self):
@@ -293,9 +301,9 @@ class bdist_wininst(Command):
bv = get_build_version()
else:
if self.target_version < "2.4":
- bv = "6"
+ bv = 6.0
else:
- bv = "7.1"
+ bv = 7.1
else:
# for current version - use authoritative check.
bv = get_build_version()
@@ -304,5 +312,9 @@ class bdist_wininst(Command):
directory = os.path.dirname(__file__)
# we must use a wininst-x.y.exe built with the same C compiler
# used for python. XXX What about mingw, borland, and so on?
- filename = os.path.join(directory, "wininst-%.1f.exe" % bv)
+ if self.plat_name == 'win32':
+ sfix = ''
+ else:
+ sfix = self.plat_name[3:] # strip 'win' - leaves eg '-amd64'
+ filename = os.path.join(directory, "wininst-%.1f%s.exe" % (bv, sfix))
return open(filename, "rb").read()