lbry-sdk/setup_win32.py
2016-07-30 22:54:51 -04:00

112 lines
4.1 KiB
Python

# -*- coding: utf-8 -*-
"""
To create local builds and distributable .msi, run the following command:
python setup_win32.py build bdist_msi
"""
import os
import sys
from cx_Freeze import setup, Executable
import requests.certs
from lbrynet import __version__
base_dir = os.path.abspath(os.path.dirname(__file__))
def find_data_file(filename):
if getattr(sys, 'frozen', False):
# The application is frozen
data_dir = os.path.dirname(sys.executable)
else:
# The application is not frozen
# Change this bit to match where you store your data files:
data_dir = os.path.dirname(__file__)
return os.path.join(data_dir, filename)
console_scripts = ['lbrynet-stdin-uploader = lbrynet.lbrynet_console.LBRYStdinUploader:launch_stdin_uploader',
'lbrynet-stdout-downloader = lbrynet.lbrynet_console.LBRYStdoutDownloader:launch_stdout_downloader',
'lbrynet-create-network = lbrynet.create_network:main',
'lbrynet-launch-node = lbrynet.dht.node:main',
'lbrynet-launch-rpc-node = lbrynet.rpc_node:main',
'lbrynet-rpc-node-cli = lbrynet.node_rpc_cli:main',
'lbrynet-lookup-hosts-for-hash = lbrynet.dht_scripts:get_hosts_for_hash_in_dht',
'lbrynet-announce_hash_to_dht = lbrynet.dht_scripts:announce_hash_to_dht',
'lbrynet-daemon = lbrynet.lbrynet_daemon.LBRYDaemonControl:start',
'stop-lbrynet-daemon = lbrynet.lbrynet_daemon.LBRYDaemonControl:stop',
'lbrynet-cli = lbrynet.lbrynet_daemon.LBRYDaemonCLI:main']
shortcut_table = [
('DesktopShortcut', # Shortcut
'DesktopFolder', # Directory
'lbrynet', # Name
'TARGETDIR', # Component
'[TARGETDIR]\lbrynet.exe', # Target
None, # Arguments
None, # Description
None, # Hotkey
os.path.join('lbry-dark-icon.ico'), # Icon
None, # IconIndex
None, # ShowCmd
'TARGETDIR', # WkDir
),
]
# Now create the table dictionary
msi_data = {'Shortcut': shortcut_table}
bdist_msi_options = {
# 'upgrade_code': '{66620F3A-DC3A-11E2-B341-002219E9B01F}',
'add_to_path': False,
'initial_target_dir': r'[LocalAppDataFolder]\lbrynet',
'data': msi_data,
}
build_exe_options = {
'include_msvcr': True,
'includes': [],
'packages': ['Crypto', 'twisted', 'miniupnpc', 'yapsy', 'seccure',
'bitcoinrpc', 'txjsonrpc', 'requests', 'unqlite', 'lbryum',
'jsonrpc', 'simplejson', 'appdirs', 'six', 'base58', 'googlefinance',
'ecdsa', 'pbkdf2', 'qrcode', 'jsonrpclib',
'os', 'cython', 'win32api', 'pkg_resources', 'zope.interface',
'argparse', 'colorama', 'certifi'
# 'gmpy', 'wsgiref', 'slowaes', 'dnspython', 'protobuf', 'google', 'google.protobuf'
],
'excludes': ['collections.sys', 'collections._weakref', 'tkinter', 'tk', 'tcl'
'zope.interface._zope_interface_coptimizations', 'matplotlib', 'numpy', 'pillow', 'pandas'],
'include_files': [(requests.certs.where(), 'cacert.pem')],
'namespace_packages': ['zope']}
exe = Executable(
script=os.path.join('lbrynet', 'lbrynet_daemon', 'LBRYDaemonControl.py'),
# base='Win32GUI',
icon=os.path.join('packaging', 'windows', 'icons', 'lbry256.ico'),
# icon=os.path.join('lbry-dark-icon.ico'),
compress=True,
shortcutName='lbrynet',
shortcutDir='DesktopFolder',
targetName='lbrynet.exe'
# targetDir="LocalAppDataFolder"
)
setup(
name='lbrynet',
version=__version__,
description='A decentralized media library and marketplace',
url='lbry.io',
author='',
keywords='LBRY',
# entry_points={'console_scripts': console_scripts},
data_files=[
('lbrynet/lbrynet_console/plugins',
[
os.path.join(base_dir, 'lbrynet', 'lbrynet_console', 'plugins',
'blindrepeater.yapsy-plugin')
]
),
],
options={'build_exe': build_exe_options,
'bdist_msi': bdist_msi_options},
executables=[exe],
)