2026-08-09 08:40:08 -04:00
|
|
|
import json
|
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
2024-05-24 01:35:30 +12:00
|
|
|
from cx_Freeze import setup, Executable
|
|
|
|
|
|
2026-08-09 08:40:08 -04:00
|
|
|
|
|
|
|
|
project_dir = Path(__file__).resolve().parent
|
|
|
|
|
package_metadata = json.loads((project_dir / 'package.json').read_text(encoding='utf-8'))
|
|
|
|
|
|
|
|
|
|
|
2024-05-24 01:35:30 +12:00
|
|
|
setup(
|
Rename project to Crosstalk and update branding
Rename Reticulum MeshChat to Crosstalk across the codebase and packaging. Renamed meshchat.py to crosstalk.py and updated Dockerfile, docker-compose, GitHub Actions, README, docs and electron assets to use Crosstalk, new storage/reticulum config paths (~/.crosstalk/.reticulum), and GHCR tags/labels. Add logic to seed a default RMAP World TCP client interface and a config flag, shorten interface/transport responses to remove forced restart messages, and update database proxy comment. Electron: set app name, implement an internal prompt (replacing electron-prompt), expose restart-backend IPC, change backend executable naming/launching (startBackend/start/stop handling), and adjust portable storage behavior. Misc: remove donate.md, add example image and egg-info files, and apply multiple frontend/component and static asset updates to match rebrand and UX improvements.
2026-06-21 07:43:38 -04:00
|
|
|
name='Crosstalk',
|
2026-08-09 08:40:08 -04:00
|
|
|
version=package_metadata['version'],
|
2024-06-02 14:42:19 +12:00
|
|
|
description='A simple mesh network communications app powered by the Reticulum Network Stack',
|
2024-05-24 01:35:30 +12:00
|
|
|
executables=[
|
|
|
|
|
Executable(
|
Rename project to Crosstalk and update branding
Rename Reticulum MeshChat to Crosstalk across the codebase and packaging. Renamed meshchat.py to crosstalk.py and updated Dockerfile, docker-compose, GitHub Actions, README, docs and electron assets to use Crosstalk, new storage/reticulum config paths (~/.crosstalk/.reticulum), and GHCR tags/labels. Add logic to seed a default RMAP World TCP client interface and a config flag, shorten interface/transport responses to remove forced restart messages, and update database proxy comment. Electron: set app name, implement an internal prompt (replacing electron-prompt), expose restart-backend IPC, change backend executable naming/launching (startBackend/start/stop handling), and adjust portable storage behavior. Misc: remove donate.md, add example image and egg-info files, and apply multiple frontend/component and static asset updates to match rebrand and UX improvements.
2026-06-21 07:43:38 -04:00
|
|
|
script='crosstalk.py', # this script to run
|
2024-05-24 01:35:30 +12:00
|
|
|
base=None, # we are running a console application, not a gui
|
Rename project to Crosstalk and update branding
Rename Reticulum MeshChat to Crosstalk across the codebase and packaging. Renamed meshchat.py to crosstalk.py and updated Dockerfile, docker-compose, GitHub Actions, README, docs and electron assets to use Crosstalk, new storage/reticulum config paths (~/.crosstalk/.reticulum), and GHCR tags/labels. Add logic to seed a default RMAP World TCP client interface and a config flag, shorten interface/transport responses to remove forced restart messages, and update database proxy comment. Electron: set app name, implement an internal prompt (replacing electron-prompt), expose restart-backend IPC, change backend executable naming/launching (startBackend/start/stop handling), and adjust portable storage behavior. Misc: remove donate.md, add example image and egg-info files, and apply multiple frontend/component and static asset updates to match rebrand and UX improvements.
2026-06-21 07:43:38 -04:00
|
|
|
target_name='Crosstalk', # creates Crosstalk.exe
|
|
|
|
|
shortcut_name='Crosstalk', # name shown in shortcut
|
2024-05-24 01:35:30 +12:00
|
|
|
shortcut_dir='ProgramMenuFolder', # put the shortcut in windows start menu
|
|
|
|
|
icon='logo/icon.ico', # set the icon for the exe
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
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',
|
|
|
|
|
],
|
|
|
|
|
# files that are required
|
|
|
|
|
'include_files': [
|
2024-06-02 13:56:04 +12:00
|
|
|
'package.json', # used to determine app version from python
|
2024-05-24 01:35:30 +12:00
|
|
|
'public/', # static files served by web server
|
2026-07-29 07:42:34 -04:00
|
|
|
(
|
|
|
|
|
'src/backend/interfaces/IridiumIMTInterface.py',
|
|
|
|
|
'src/backend/interfaces/IridiumIMTInterface.py',
|
|
|
|
|
),
|
2024-05-24 01:35:30 +12:00
|
|
|
],
|
|
|
|
|
# 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,
|
2024-05-27 21:26:23 +12:00
|
|
|
# change where exe is built to
|
|
|
|
|
'build_exe': 'build/exe',
|
2024-05-24 01:35:30 +12:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
)
|