# Windows-only cx_freeze setup file from cx_Freeze import * import sys from version import buildVersion if sys.version_info < (3, 0, 0): sys.exit("Python versions lower than 3 are not supported.") def is_64bit() -> bool: return sys.maxsize > 2**32 path = "" base = None if sys.platform == "win32": base = "Win32GUI" path = sys.path if is_64bit() == True: path.append(r"C:\Program Files (x86)\Windows Kits\10\Redist\10.0.22000.0\ucrt\DLLs\x64") elif is_64bit() == False: path.append(r"C:\Program Files (x86)\Windows Kits\10\Redist\10.0.22000.0\ucrt\DLLs\x86") print("Path = " + str(path)) includefiles = ["quirks", "smilies", "themes", "docs", "README.md", "LICENSE", "CHANGELOG.md", "PCskins.png", "Pesterchum.png", "logging.ini.example"] build_exe_options = { ## "includes": ["PyQt5.QtCore", ## "PyQt5.QtGui", ## "PyQt5.QtWidgets", ## "pygame", ## "feedparser", ## "magic", ## "ostools", ## "requests", ## "urllib", ## "pytwmn", ## "re", ## "oyoyo", ## "ssl"], "excludes": ['collections.sys', 'collections._sre', 'collections._json', 'collections._locale', 'collections._struct', 'collections.array', 'collections._weakref', 'PyQt5.QtMultimedia', 'PyQt5.QtDBus', 'PyQt5.QtDeclarative', 'PyQt5.QtHelp', 'PyQt5.QtNetwork', 'PyQt5.QtSql', 'PyQt5.QtSvg', 'PyQt5.QtTest', 'PyQt5.QtWebKit', # 'PyQt5.QtXml', # 'PyQt5.QtXmlPatterns', 'PyQt5.phonon', 'PyQt5.QtAssistant', 'PyQt5.QtDesigner', 'PyQt5.QAxContainer',], "include_files": includefiles, "include_msvcr": True, # cx_freeze copies 64-bit binaries always? "path": path # Improved in 6.6, path to be safe # VCRUNTIME140.dll <3 } bdist_mac_options = { 'iconfile': 'trayicon32.icns', 'bundle_name': "Pesterchum" } description = "Pesterchum" icon = "pesterchum.ico" # See https://stackoverflow.com/questions/15734703/use-cx-freeze-to-create-an-msi-that-adds-a-shortcut-to-the-desktop shortcut_table = [ ("DesktopShortcut", # Shortcut "DesktopFolder", # Directory_ "Pesterchum", # Name "TARGETDIR", # Component_ "[TARGETDIR]pesterchum.exe",# Target None, # Arguments description, # Description None, # Hotkey None, # Icon (Is inherited from pesterchum.exe) None, # IconIndex None, # ShowCmd 'TARGETDIR' # WkDir ), ("StartMenuShortcut", # Shortcut "StartMenuFolder", # Directory_ "Pesterchum", # Name "TARGETDIR", # Component_ "[TARGETDIR]pesterchum.exe",# Target None, # Arguments description, # Description None, # Hotkey None, # Icon None, # IconIndex None, # ShowCmd 'TARGETDIR' # WkDir ) ] msi_data = {"Shortcut": shortcut_table} bdist_msi_options = {'data': msi_data, 'summary_data': { 'comments': "FL1P", 'keywords': "Pesterchum"}, 'upgrade_code': "{86740d75-f1f2-48e8-8266-f36395a2d77f}", 'add_to_path': False, # !!! 'all_users': False, 'install_icon': "pesterchum.ico"} setup( name = "Pesterchum", version = buildVersion, url = "https://github.com/Dpeta/pesterchum-alt-servers", description = description,#"P3ST3RCHUM", options = {"build_exe": build_exe_options, "bdist_msi": bdist_msi_options, "bdist_mac": bdist_mac_options}, executables = [Executable("pesterchum.py", base=base, icon=icon )])