@ -1,15 +1,30 @@
import ctypes
import os
srcPath = "C:\\src\\PyBitmessage\\src\\"
qtPath = "C:\\Qt\\4.8.6\\"
openSSLPath = "C:\\OpenSSL-1.0.2e\\"
outPath = "C:\\src\\PyInstaller\\bitmessagemain"
qtPath = "C:\\Qt-4.8.7 \\"
openSSLPath = "C:\\OpenSSL-1.0.2j \\"
outPath = "C:\\src\\PyInstaller-3.2.1 \\bitmessagemain"
# -*- mode: python -*-
a = Analysis([srcPath + 'bitmessagemain.py'],
pathex=[outPath],
hiddenimports=[],
hiddenimports=['messagetypes' ],
hookspath=None,
runtime_hooks=None)
# manually add messagetypes directory and its listing
with open(os.path.join(srcPath, 'messagetypes.txt'), 'wt') as f:
for mt in os.listdir(os.path.join(srcPath, 'messagetypes')):
if mt == "__init__.py":
continue
splitted = os.path.splitext(mt)
if splitted[1] != ".py":
continue
f.write(mt + "\n")
a.scripts.append((os.path.join('messagetypes', mt), os.path.join(srcPath, 'messagetypes', mt), 'PYMODULE'))
a.datas.append(('messagetypes.txt', os.path.join(srcPath, 'messagetypes.txt'), 'DATA'))
# fix duplicates
for d in a.datas:
if 'pyconfig' in d[0]:
@ -22,11 +37,11 @@ def addTranslations():
for file in os.listdir(srcPath + 'translations'):
if file[-3:] != ".qm":
continue
extraDatas.append(('translations\\'+file, srcPath + 'translations\\' + file, 'DATA'))
extraDatas.append((os.path.join('translations', file), os.path.join(srcPath, 'translations', file) 'DATA'))
for file in os.listdir(qtPath + 'translations'):
if file[0:3] != "qt_" or file[5:8] != ".qm":
continue
extraDatas.append(('translations\\'+file, qtPath + 'translations\\' + file , 'DATA'))
extraDatas.append((os.path.join('translations', file), os.path.join(qtPath, 'translations', file) , 'DATA'))
return extraDatas
def addUIs():
@ -35,14 +50,24 @@ def addUIs():
for file in os.listdir(srcPath + 'bitmessageqt'):
if file[-3:] != ".ui":
continue
extraDatas.append(('ui\\'+file, srcPath + 'bitmessageqt\\' + file , 'DATA'))
extraDatas.append((os.path.join('ui', file), os.path.join(srcPath, 'bitmessageqt', file) , 'DATA'))
return extraDatas
# append the translations directory
a.datas += addTranslations()
a.datas += addUIs()
a.binaries.append(('msvcr120.dll', 'C:\\WINDOWS\\system32\\msvcr120.dll', 'BINARY'))
if ctypes.sizeof(ctypes.c_voidp) == 4:
arch=32
else:
arch=64
a.binaries += [('libeay32.dll', openSSLPath + 'libeay32.dll', 'BINARY'),
(os.path.join('bitmsghash', 'bitmsghash%i.dll' % (arch)), os.path.join(srcPath, 'bitmsghash', 'bitmsghash%i.dll' % (arch)), 'BINARY'),
(os.path.join('bitmsghash', 'bitmsghash.cl'), os.path.join(srcPath, 'bitmsghash', 'bitmsghash.cl'), 'BINARY'),
(os.path.join('sslkeys', 'cert.pem'), os.path.join(srcPath, 'sslkeys', 'cert.pem'), 'BINARY'),
(os.path.join('sslkeys', 'key.pem'), os.path.join(srcPath, 'sslkeys', 'key.pem'), 'BINARY')
]
pyz = PYZ(a.pure)
exe = EXE(pyz,
@ -50,9 +75,9 @@ exe = EXE(pyz,
a.binaries,
a.zipfiles,
a.datas,
a.binaries + [('libeay32.dll', openSSLPath + 'libeay32.dll', 'BINARY'), ('bitmsghash\\bitmsghash32.dll', srcPath + 'bitmsghash\\bitmsghash32.dll', 'BINARY'), ('bitmsghash\\bitmsghash.cl', srcPath + 'bitmsghash\\bitmsghash.cl', 'BINARY'), ('sslkeys\\cert.pem', srcPath + 'sslkeys\\cert.pem', 'BINARY'), ('sslkeys\\key.pem', srcPath + 'sslkeys\\key.pem', 'BINARY')] ,
a.binaries,
name='Bitmessage.exe',
debug=False,
strip=None,
upx=False,
console=False, icon= srcPath + 'images\\ can-icon.ico')
console=False, icon= os.path.join(srcPath, 'images', ' can-icon.ico')