51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
from cx_Freeze import Executable, setup
|
|
|
|
setup(
|
|
name="ReticulumMeshChatX",
|
|
version="1.0.0",
|
|
description="A simple mesh network communications app powered by the Reticulum Network Stack",
|
|
executables=[
|
|
Executable(
|
|
script="meshchat.py", # this script to run
|
|
base=None, # we are running a console application, not a gui
|
|
target_name="ReticulumMeshChatX", # creates ReticulumMeshChatX.exe
|
|
shortcut_name="ReticulumMeshChatX", # name shown in shortcut
|
|
shortcut_dir="ProgramMenuFolder", # put the shortcut in windows start menu
|
|
icon="logo/icon.ico", # set the icon for the exe
|
|
copyright="Copyright (c) 2024 Liam Cottle",
|
|
),
|
|
],
|
|
options={
|
|
"build_exe": {
|
|
# libs that are required
|
|
"packages": [
|
|
# required for dynamic import fix
|
|
# https://github.com/marcelotduarte/cx_Freeze/discussions/2039
|
|
# https://github.com/marcelotduarte/cx_Freeze/issues/2041
|
|
"RNS",
|
|
"RNS.Interfaces",
|
|
"LXMF",
|
|
],
|
|
# files that are required
|
|
"include_files": [
|
|
"package.json", # used to determine app version from python
|
|
"public/", # static files served by web server
|
|
],
|
|
# slim down the build by excluding these unused libs
|
|
"excludes": [
|
|
"PIL", # saves ~200MB
|
|
],
|
|
# this has the same effect as the -O command line option when executing CPython directly.
|
|
# it also prevents assert statements from executing, removes docstrings and sets __debug__ to False.
|
|
# https://stackoverflow.com/a/57948104
|
|
"optimize": 2,
|
|
# change where exe is built to
|
|
"build_exe": "build/exe",
|
|
# make the build relocatable by replacing absolute paths
|
|
"replace_paths": [
|
|
("*", ""),
|
|
],
|
|
},
|
|
},
|
|
)
|