Merge in unstable
This commit is contained in:
68
source/DungeonRandomizer.spec
Normal file
68
source/DungeonRandomizer.spec
Normal file
@@ -0,0 +1,68 @@
|
||||
# -*- mode: python -*-
|
||||
|
||||
import sys
|
||||
|
||||
block_cipher = None
|
||||
console = True # <--- change this to True to enable command prompt when the app runs
|
||||
|
||||
if sys.platform.find("mac") or sys.platform.find("osx"):
|
||||
console = False
|
||||
|
||||
BINARY_SLUG = "DungeonRandomizer"
|
||||
|
||||
def recurse_for_py_files(names_so_far):
|
||||
returnvalue = []
|
||||
for name in os.listdir(os.path.join(*names_so_far)):
|
||||
if name != "__pycache__":
|
||||
subdir_name = os.path.join(*names_so_far, name)
|
||||
if os.path.isdir(subdir_name):
|
||||
new_name_list = names_so_far + [name]
|
||||
for filename in os.listdir(os.path.join(*new_name_list)):
|
||||
base_file,file_extension = os.path.splitext(filename)
|
||||
if file_extension == ".py":
|
||||
new_name = ".".join(new_name_list+[base_file])
|
||||
if not new_name in returnvalue:
|
||||
returnvalue.append(new_name)
|
||||
returnvalue.extend(recurse_for_py_files(new_name_list))
|
||||
returnvalue.append("PIL._tkinter_finder") #Linux needs this
|
||||
return returnvalue
|
||||
|
||||
hiddenimports = []
|
||||
binaries = []
|
||||
|
||||
a = Analysis([f"../{BINARY_SLUG}.py"],
|
||||
pathex=[],
|
||||
binaries=binaries,
|
||||
datas=[('../data/', 'data/')],
|
||||
hiddenimports=hiddenimports,
|
||||
hookspath=[],
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
cipher=block_cipher,
|
||||
noarchive=False)
|
||||
|
||||
# https://stackoverflow.com/questions/17034434/how-to-remove-exclude-modules-and-files-from-pyinstaller
|
||||
excluded_binaries = [
|
||||
'VCRUNTIME140.dll',
|
||||
'ucrtbase.dll',
|
||||
'msvcp140.dll',
|
||||
'mfc140u.dll']
|
||||
a.binaries = TOC([x for x in a.binaries if x[0] not in excluded_binaries])
|
||||
|
||||
pyz = PYZ(a.pure, a.zipped_data,
|
||||
cipher=block_cipher)
|
||||
exe = EXE(pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.zipfiles,
|
||||
a.datas,
|
||||
[],
|
||||
name=BINARY_SLUG,
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
runtime_tmpdir=None,
|
||||
console=console )
|
||||
69
source/Gui.spec
Normal file
69
source/Gui.spec
Normal file
@@ -0,0 +1,69 @@
|
||||
# -*- mode: python -*-
|
||||
|
||||
import sys
|
||||
|
||||
block_cipher = None
|
||||
console = True # <--- change this to True to enable command prompt when the app runs
|
||||
|
||||
if sys.platform.find("mac") or sys.platform.find("osx"):
|
||||
console = False
|
||||
|
||||
BINARY_SLUG = "Gui"
|
||||
|
||||
def recurse_for_py_files(names_so_far):
|
||||
returnvalue = []
|
||||
for name in os.listdir(os.path.join(*names_so_far)):
|
||||
if name != "__pycache__":
|
||||
subdir_name = os.path.join(*names_so_far, name)
|
||||
if os.path.isdir(subdir_name):
|
||||
new_name_list = names_so_far + [name]
|
||||
for filename in os.listdir(os.path.join(*new_name_list)):
|
||||
base_file,file_extension = os.path.splitext(filename)
|
||||
if file_extension == ".py":
|
||||
new_name = ".".join(new_name_list+[base_file])
|
||||
if not new_name in returnvalue:
|
||||
returnvalue.append(new_name)
|
||||
returnvalue.extend(recurse_for_py_files(new_name_list))
|
||||
returnvalue.append("PIL._tkinter_finder") #Linux needs this
|
||||
return returnvalue
|
||||
|
||||
hiddenimports = []
|
||||
binaries = []
|
||||
|
||||
a = Analysis([f"../{BINARY_SLUG}.py"],
|
||||
pathex=[],
|
||||
binaries=binaries,
|
||||
datas=[('../data/', 'data/')],
|
||||
hiddenimports=hiddenimports,
|
||||
hookspath=[],
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
cipher=block_cipher,
|
||||
noarchive=False)
|
||||
|
||||
# https://stackoverflow.com/questions/17034434/how-to-remove-exclude-modules-and-files-from-pyinstaller
|
||||
excluded_binaries = [
|
||||
'VCRUNTIME140.dll',
|
||||
'ucrtbase.dll',
|
||||
'msvcp140.dll',
|
||||
'mfc140u.dll']
|
||||
a.binaries = TOC([x for x in a.binaries if x[0] not in excluded_binaries])
|
||||
|
||||
pyz = PYZ(a.pure, a.zipped_data,
|
||||
cipher=block_cipher)
|
||||
exe = EXE(pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.zipfiles,
|
||||
a.datas,
|
||||
[],
|
||||
name=BINARY_SLUG,
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
icon='../data/ER.ico',
|
||||
strip=False,
|
||||
upx=True,
|
||||
runtime_tmpdir=None,
|
||||
console=console )
|
||||
@@ -31,6 +31,11 @@ class SpriteSelector(object):
|
||||
def open_official_sprite_listing(_evt):
|
||||
webbrowser.open("http://alttpr.com/sprite_preview")
|
||||
|
||||
def open_official_sprite_dir(_evt):
|
||||
if not os.path.isdir(self.official_sprite_dir):
|
||||
os.makedirs(self.official_sprite_dir)
|
||||
open_file(self.official_sprite_dir)
|
||||
|
||||
def open_unofficial_sprite_dir(_evt):
|
||||
if not os.path.isdir(self.unofficial_sprite_dir):
|
||||
os.makedirs(self.unofficial_sprite_dir)
|
||||
@@ -42,14 +47,17 @@ class SpriteSelector(object):
|
||||
|
||||
official_frametitle = Frame(self.window)
|
||||
official_title_text = Label(official_frametitle, text="Official Sprites")
|
||||
official_title_link = Label(official_frametitle, text="(open)", fg="blue", cursor="hand2")
|
||||
official_title_text.pack(side=LEFT)
|
||||
official_local_title_link = Label(official_frametitle, text="(open local)", fg="blue", cursor="hand2")
|
||||
official_local_title_link.pack(side=LEFT)
|
||||
official_local_title_link.bind("<Button-1>", open_official_sprite_dir)
|
||||
official_title_link = Label(official_frametitle, text="(ALttPR)", fg="blue", cursor="hand2")
|
||||
official_title_link.pack(side=LEFT)
|
||||
official_title_link.bind("<Button-1>", open_official_sprite_listing)
|
||||
|
||||
unofficial_frametitle = Frame(self.window)
|
||||
unofficial_title_text = Label(unofficial_frametitle, text="Unofficial Sprites")
|
||||
unofficial_title_link = Label(unofficial_frametitle, text="(open)", fg="blue", cursor="hand2")
|
||||
unofficial_title_link = Label(unofficial_frametitle, text="(open local)", fg="blue", cursor="hand2")
|
||||
unofficial_title_text.pack(side=LEFT)
|
||||
unofficial_title_link.pack(side=LEFT)
|
||||
unofficial_title_link.bind("<Button-1>", open_unofficial_sprite_dir)
|
||||
@@ -231,8 +239,6 @@ class SpriteSelector(object):
|
||||
|
||||
@property
|
||||
def official_sprite_dir(self):
|
||||
# if is_bundled():
|
||||
# return output_path(os.path.join("sprites","official"))
|
||||
return self.local_official_sprite_dir
|
||||
|
||||
@property
|
||||
@@ -241,8 +247,6 @@ class SpriteSelector(object):
|
||||
|
||||
@property
|
||||
def unofficial_sprite_dir(self):
|
||||
# if is_bundled():
|
||||
# return output_path(os.path.join("sprites","unofficial"))
|
||||
return self.local_unofficial_sprite_dir
|
||||
|
||||
@property
|
||||
|
||||
28
source/meta/build-dr.py
Normal file
28
source/meta/build-dr.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import subprocess
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
# Spec file
|
||||
SPEC_FILE = os.path.join(".", "source", "DungeonRandomizer.spec")
|
||||
|
||||
# Destination is current dir
|
||||
DEST_DIRECTORY = '.'
|
||||
|
||||
# Check for UPX
|
||||
if os.path.isdir("upx"):
|
||||
upx_string = "--upx-dir=upx"
|
||||
else:
|
||||
upx_string = ""
|
||||
|
||||
if os.path.isdir("build") and not sys.platform.find("mac") and not sys.platform.find("osx"):
|
||||
shutil.rmtree("build")
|
||||
|
||||
# Run pyinstaller for DungeonRandomizer
|
||||
subprocess.run(" ".join([f"pyinstaller {SPEC_FILE} ",
|
||||
upx_string,
|
||||
"-y ",
|
||||
"--onefile ",
|
||||
f"--distpath {DEST_DIRECTORY} ",
|
||||
]),
|
||||
shell=True)
|
||||
28
source/meta/build-gui.py
Normal file
28
source/meta/build-gui.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import subprocess
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
# Spec file
|
||||
SPEC_FILE = os.path.join(".", "source", "Gui.spec")
|
||||
|
||||
# Destination is current dir
|
||||
DEST_DIRECTORY = '.'
|
||||
|
||||
# Check for UPX
|
||||
if os.path.isdir("upx"):
|
||||
upx_string = "--upx-dir=upx"
|
||||
else:
|
||||
upx_string = ""
|
||||
|
||||
if os.path.isdir("build") and not sys.platform.find("mac") and not sys.platform.find("osx"):
|
||||
shutil.rmtree("build")
|
||||
|
||||
# Run pyinstaller for Gui
|
||||
subprocess.run(" ".join([f"pyinstaller {SPEC_FILE} ",
|
||||
upx_string,
|
||||
"-y ",
|
||||
"--onefile ",
|
||||
f"--distpath {DEST_DIRECTORY} ",
|
||||
]),
|
||||
shell=True)
|
||||
Reference in New Issue
Block a user