mirror of
https://github.com/python/cpython.git
synced 2025-07-30 14:44:10 +00:00
Added a --python option, which sets the python to be used in the #! line
in the bootstrap script of the applet.
This commit is contained in:
parent
8d97b9bd36
commit
8ba0e80117
2 changed files with 16 additions and 3 deletions
|
@ -332,6 +332,9 @@ class AppBuilder(BundleBuilder):
|
||||||
# If True, build standalone app.
|
# If True, build standalone app.
|
||||||
standalone = 0
|
standalone = 0
|
||||||
|
|
||||||
|
# If set, use this for #! lines in stead of sys.executable
|
||||||
|
python = None
|
||||||
|
|
||||||
# If True, add a real main program that emulates sys.argv before calling
|
# If True, add a real main program that emulates sys.argv before calling
|
||||||
# mainprogram
|
# mainprogram
|
||||||
argv_emulation = 0
|
argv_emulation = 0
|
||||||
|
@ -442,6 +445,8 @@ class AppBuilder(BundleBuilder):
|
||||||
# XXX we're screwed when the end user has deleted
|
# XXX we're screwed when the end user has deleted
|
||||||
# /usr/bin/python
|
# /usr/bin/python
|
||||||
hashbang = "/usr/bin/python"
|
hashbang = "/usr/bin/python"
|
||||||
|
elif self.python:
|
||||||
|
hashbang = self.python
|
||||||
else:
|
else:
|
||||||
hashbang = os.path.realpath(sys.executable)
|
hashbang = os.path.realpath(sys.executable)
|
||||||
standalone = self.standalone
|
standalone = self.standalone
|
||||||
|
@ -706,6 +711,7 @@ Options:
|
||||||
--link-exec symlink the executable instead of copying it
|
--link-exec symlink the executable instead of copying it
|
||||||
--standalone build a standalone application, which is fully
|
--standalone build a standalone application, which is fully
|
||||||
independent of a Python installation
|
independent of a Python installation
|
||||||
|
--python=FILE Python to use in #! line in stead of current Python
|
||||||
--lib=FILE shared library or framework to be copied into
|
--lib=FILE shared library or framework to be copied into
|
||||||
the bundle
|
the bundle
|
||||||
-x, --exclude=MODULE exclude module (with --standalone)
|
-x, --exclude=MODULE exclude module (with --standalone)
|
||||||
|
@ -732,7 +738,7 @@ def main(builder=None):
|
||||||
"mainprogram=", "creator=", "nib=", "plist=", "link",
|
"mainprogram=", "creator=", "nib=", "plist=", "link",
|
||||||
"link-exec", "help", "verbose", "quiet", "argv", "standalone",
|
"link-exec", "help", "verbose", "quiet", "argv", "standalone",
|
||||||
"exclude=", "include=", "package=", "strip", "iconfile=",
|
"exclude=", "include=", "package=", "strip", "iconfile=",
|
||||||
"lib=")
|
"lib=", "python=")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
options, args = getopt.getopt(sys.argv[1:], shortopts, longopts)
|
options, args = getopt.getopt(sys.argv[1:], shortopts, longopts)
|
||||||
|
@ -780,6 +786,8 @@ def main(builder=None):
|
||||||
builder.verbosity -= 1
|
builder.verbosity -= 1
|
||||||
elif opt == '--standalone':
|
elif opt == '--standalone':
|
||||||
builder.standalone = 1
|
builder.standalone = 1
|
||||||
|
elif opt == '--python':
|
||||||
|
builder.python = arg
|
||||||
elif opt in ('-x', '--exclude'):
|
elif opt in ('-x', '--exclude'):
|
||||||
builder.excludeModules.append(arg)
|
builder.excludeModules.append(arg)
|
||||||
elif opt in ('-i', '--include'):
|
elif opt in ('-i', '--include'):
|
||||||
|
|
|
@ -53,8 +53,8 @@ def buildapplet():
|
||||||
buildtools.process(template, filename, dstfilename, 1)
|
buildtools.process(template, filename, dstfilename, 1)
|
||||||
else:
|
else:
|
||||||
|
|
||||||
SHORTOPTS = "o:r:ne:v?"
|
SHORTOPTS = "o:r:ne:v?P"
|
||||||
LONGOPTS=("output=", "resource=", "noargv", "extra=", "verbose", "help")
|
LONGOPTS=("output=", "resource=", "noargv", "extra=", "verbose", "help", "python=")
|
||||||
try:
|
try:
|
||||||
options, args = getopt.getopt(sys.argv[1:], SHORTOPTS, LONGOPTS)
|
options, args = getopt.getopt(sys.argv[1:], SHORTOPTS, LONGOPTS)
|
||||||
except getopt.error:
|
except getopt.error:
|
||||||
|
@ -78,6 +78,11 @@ def buildapplet():
|
||||||
if ':' in arg:
|
if ':' in arg:
|
||||||
arg = arg.split(':')
|
arg = arg.split(':')
|
||||||
extras.append(arg)
|
extras.append(arg)
|
||||||
|
elif opt in ('-P', '--python'):
|
||||||
|
# This is a very dirty trick. We set sys.executable
|
||||||
|
# so that bundlebuilder will use this in the #! line
|
||||||
|
# for the applet bootstrap.
|
||||||
|
sys.executable = arg
|
||||||
elif opt in ('-v', '--verbose'):
|
elif opt in ('-v', '--verbose'):
|
||||||
verbose = Verbose()
|
verbose = Verbose()
|
||||||
elif opt in ('-?', '--help'):
|
elif opt in ('-?', '--help'):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue