first commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
"""Baut den Desktop-Client fuer das aktuelle Betriebssystem (PyInstaller kann nicht cross-kompilieren).
|
||||
|
||||
python build.py
|
||||
|
||||
Ergebnis in dist/:
|
||||
Windows dist/NetClip/NetClip.exe -> danach packaging/windows-installer.iss mit Inno Setup bauen
|
||||
macOS dist/NetClip.app -> zusaetzlich dist/NetClip-macos.zip
|
||||
Linux dist/NetClip/NetClip -> zusaetzlich dist/NetClip-linux-x86_64.tar.gz
|
||||
"""
|
||||
import platform
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parent
|
||||
|
||||
|
||||
def main():
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", "requirements.txt", "pyinstaller"], cwd=ROOT)
|
||||
if platform.system() == "Windows":
|
||||
make_ico()
|
||||
subprocess.check_call([sys.executable, "-m", "PyInstaller", "--noconfirm", "--clean", "netclip.spec"], cwd=ROOT)
|
||||
dist = ROOT / "dist"
|
||||
system = platform.system()
|
||||
if system == "Darwin":
|
||||
shutil.make_archive(str(dist / "NetClip-macos"), "zip", dist, "NetClip.app")
|
||||
elif system == "Linux":
|
||||
shutil.copy(ROOT / "packaging" / "netclip.desktop", dist / "NetClip")
|
||||
shutil.copy(ROOT / "packaging" / "install-linux.sh", dist / "NetClip")
|
||||
shutil.make_archive(str(dist / f"NetClip-linux-{platform.machine()}"), "gztar", dist, "NetClip")
|
||||
print("Fertig:", dist)
|
||||
|
||||
|
||||
def make_ico():
|
||||
"""Erzeugt packaging/netclip.ico aus dem gezeichneten App-Symbol."""
|
||||
from PySide6.QtWidgets import QApplication
|
||||
sys.path.insert(0, str(ROOT))
|
||||
app = QApplication.instance() or QApplication([]) # noqa: F841
|
||||
from netclip.ui import app_icon
|
||||
app_icon().pixmap(256, 256).save(str(ROOT / "packaging" / "netclip.ico"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user