twblue/src/main.spec

85 lines
2.5 KiB
Python

# -*- mode: python -*-
""" specification file for creating distributable versions using Pyinstaller. """
import os
import glob
import wx
import platform
from requests import certs
block_cipher = None
def get_architecture_files():
""" Returns architecture files for 32 or 64 bits. """
if platform.architecture()[0][:2] == "32":
return [
("..\\windows-dependencies\\x86\\oggenc2.exe", "."),
("..\\windows-dependencies\\x86\\bootstrap.exe", "."),
("..\\windows-dependencies\\x86\\*.dll", "."),
("..\\windows-dependencies\\x86\\plugins", "plugins"),
]
elif platform.architecture()[0][:2] == "64":
return [
("..\\windows-dependencies\\x64\\oggenc2.exe", "."),
("..\\windows-dependencies\\x64\\bootstrap.exe", "."),
("..\\windows-dependencies\\x64\\*.dll", "."),
("..\\windows-dependencies\\x64\\plugins", "plugins"),
]
def wx_files():
wxDir=wx.__path__[0]
localeMoFiles=set()
for f in glob.glob("locales/*/LC_MESSAGES"):
g=f.replace("locales", "locale")
wxMoFile=os.path.join(wxDir,g,"wxstd.mo")
if os.path.isfile(wxMoFile):
localeMoFiles.add((wxMoFile, f))
lang=os.path.split(os.path.split(f)[0])[1]
if '_' in lang:
lang=lang.split('_')[0]
f=os.path.join('locale',lang,'lc_messages')
g=f.replace("locale", "locales")
wxMoFile=os.path.join(wxDir,f,"wxstd.mo")
if os.path.isfile(wxMoFile):
localeMoFiles.add((wxMoFile, g))
return list(localeMoFiles)
a = Analysis(['main.py'],
pathex=['.'],
binaries=[("sounds", "sounds"),
("documentation", "documentation"),
("locales", "locales"),
("keymaps", "keymaps"),
("keys/lib", "keys/lib"),
("..\\windows-dependencies\\dictionaries", "enchant\\share\\enchant\\myspell"),
(certs.where(), "."),
("app-configuration.defaults", "."),
("conf.defaults", "."),
("icon.ico", "."),
]+get_architecture_files()+wx_files(),
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
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='TWBlue',
debug=False,
strip=False,
upx=True,
console=False)
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='TWBlue')