Kaydet (Commit) 9f5c0c41 authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Patch #736857, #736859: Add -e option to build_scripts.

üst be83737c
...@@ -640,7 +640,9 @@ started from the command line. Scripts don't require Distutils to do ...@@ -640,7 +640,9 @@ started from the command line. Scripts don't require Distutils to do
anything very complicated. The only clever feature is that if the anything very complicated. The only clever feature is that if the
first line of the script starts with \code{\#!} and contains the word first line of the script starts with \code{\#!} and contains the word
``python'', the Distutils will adjust the first line to refer to the ``python'', the Distutils will adjust the first line to refer to the
current interpreter location. current interpreter location. By default, it is replaced with the
current interpreter location. The '--executable=/-e' switch will
allow the interpreter path to be explicitly overridden.
The \option{scripts} option simply is a list of files to be handled The \option{scripts} option simply is a list of files to be handled
in this way. From the PyXML setup script: in this way. From the PyXML setup script:
......
...@@ -40,6 +40,8 @@ class build (Command): ...@@ -40,6 +40,8 @@ class build (Command):
"compile extensions and libraries with debugging information"), "compile extensions and libraries with debugging information"),
('force', 'f', ('force', 'f',
"forcibly build everything (ignore file timestamps)"), "forcibly build everything (ignore file timestamps)"),
('executable=', 'e',
"specify final destination interpreter path (build.py)"),
] ]
boolean_options = ['debug', 'force'] boolean_options = ['debug', 'force']
...@@ -61,6 +63,7 @@ class build (Command): ...@@ -61,6 +63,7 @@ class build (Command):
self.compiler = None self.compiler = None
self.debug = None self.debug = None
self.force = 0 self.force = 0
self.executable = None
def finalize_options (self): def finalize_options (self):
...@@ -93,6 +96,8 @@ class build (Command): ...@@ -93,6 +96,8 @@ class build (Command):
self.build_scripts = os.path.join(self.build_base, self.build_scripts = os.path.join(self.build_base,
'scripts-' + sys.version[0:3]) 'scripts-' + sys.version[0:3])
if self.executable is None:
self.executable = os.path.normpath(sys.executable)
# finalize_options () # finalize_options ()
......
...@@ -24,6 +24,7 @@ class build_scripts (Command): ...@@ -24,6 +24,7 @@ class build_scripts (Command):
user_options = [ user_options = [
('build-dir=', 'd', "directory to \"build\" (copy) to"), ('build-dir=', 'd', "directory to \"build\" (copy) to"),
('force', 'f', "forcibly build everything (ignore file timestamps"), ('force', 'f', "forcibly build everything (ignore file timestamps"),
('executable=', 'e', "specify final destination interpreter path"),
] ]
boolean_options = ['force'] boolean_options = ['force']
...@@ -33,12 +34,14 @@ class build_scripts (Command): ...@@ -33,12 +34,14 @@ class build_scripts (Command):
self.build_dir = None self.build_dir = None
self.scripts = None self.scripts = None
self.force = None self.force = None
self.executable = None
self.outfiles = None self.outfiles = None
def finalize_options (self): def finalize_options (self):
self.set_undefined_options('build', self.set_undefined_options('build',
('build_scripts', 'build_dir'), ('build_scripts', 'build_dir'),
('force', 'force')) ('force', 'force'),
('executable', 'executable'))
self.scripts = self.distribution.scripts self.scripts = self.distribution.scripts
def get_source_files(self): def get_source_files(self):
...@@ -95,7 +98,7 @@ class build_scripts (Command): ...@@ -95,7 +98,7 @@ class build_scripts (Command):
outf = open(outfile, "w") outf = open(outfile, "w")
if not sysconfig.python_build: if not sysconfig.python_build:
outf.write("#!%s%s\n" % outf.write("#!%s%s\n" %
(os.path.normpath(sys.executable), (self.executable,
post_interp)) post_interp))
else: else:
outf.write("#!%s%s\n" % outf.write("#!%s%s\n" %
......
...@@ -57,6 +57,9 @@ Extension modules ...@@ -57,6 +57,9 @@ Extension modules
Library Library
------- -------
- distutils build/build_scripts now has an -e option to specify the
path to the Python interpreter for installed scripts.
- PEP 292 classes Template and SafeTemplate are added to the string module. - PEP 292 classes Template and SafeTemplate are added to the string module.
- tarfile now generates GNU tar files by default. - tarfile now generates GNU tar files by default.
......
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