Add pyinstaller bundle support

Will allow creating generating pre-made builds for windows that do not
require python to be already installed.
This commit is contained in:
Kevin Cathcart 2017-11-15 22:06:53 -05:00
parent 619ad5a716
commit 4271b4430a
3 changed files with 45 additions and 0 deletions

View File

@ -190,6 +190,14 @@ if __name__ == '__main__':
''')
args = parser.parse_args()
if hasattr(sys, 'frozen') and len(sys.argv) == 1 :
# for the Precompiled windows build, if we have no arguments, the user
# probably wants the gui. Users of the windows build who want the command line
# interface shouuld specify at least one option, possibly setting a value to a
# default if they like all the defaults
guiMain()
sys.exit(0)
# ToDo: Validate files further than mere existance
if not args.jsonout and not os.path.isfile(args.rom):
input('Could not find valid base rom for patching at expected path %s. Please run with -h to see help for further information. \nPress Enter to exit.' % args.rom)

View File

@ -0,0 +1,33 @@
# -*- mode: python -*-
block_cipher = None
a = Analysis(['..\\EntranceRandomizer.py'],
pathex=['bundle'],
binaries=[],
datas=[('../data/', 'data/'), ('../README.html', '.'), ('../LICENSE.txt', '.')],
hiddenimports=[],
hookspath=[],
runtime_hooks=['bundle/_rt_hook.py'],
excludes=['lzma', 'bz2'],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='EntranceRandomizer',
debug=False,
strip=False,
upx=False,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=False,
name='EntranceRandomizer')

4
bundle/_rt_hook.py Normal file
View File

@ -0,0 +1,4 @@
import sys
import os
sys.path.append(os.path.join(sys._MEIPASS, "ext"))