mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00
Part 2/2 of SF patch #416704: More robust freeze, by Toby Dickenson.
(With slight cosmetic improvements to shorten lines and a grammar fix to a docstring.) This addes -X and -E options to freeze. From the docstring: -X module Like -x, except the module can never be imported by the frozen binary. -E: Freeze will fail if any modules can't be found (that were not excluded using -x or -X).
This commit is contained in:
parent
db7287c0f5
commit
03f7f08874
3 changed files with 59 additions and 11 deletions
|
@ -32,7 +32,7 @@ main(argc, argv)
|
|||
|
||||
"""
|
||||
|
||||
def makefreeze(base, dict, debug=0, entry_point = None):
|
||||
def makefreeze(base, dict, debug=0, entry_point=None, fail_import=()):
|
||||
if entry_point is None: entry_point = default_entry_point
|
||||
done = []
|
||||
files = []
|
||||
|
@ -63,6 +63,13 @@ def makefreeze(base, dict, debug=0, entry_point = None):
|
|||
outfp.write(header)
|
||||
for mod, mangled, size in done:
|
||||
outfp.write('\t{"%s", M_%s, %d},\n' % (mod, mangled, size))
|
||||
outfp.write('\n')
|
||||
# The following modules have a NULL code pointer, indicating
|
||||
# that the prozen program should not search for them on the host
|
||||
# system. Importing them will *always* raise an ImportError.
|
||||
# The zero value size is never used.
|
||||
for mod in fail_import:
|
||||
outfp.write('\t{"%s", NULL, 0},\n' % (mod,))
|
||||
outfp.write(trailer)
|
||||
outfp.write(entry_point)
|
||||
outfp.close()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue