From 5f01d9906277ac960fbe0ad827975548a91b32f6 Mon Sep 17 00:00:00 2001 From: Dummerle Date: Mon, 30 Aug 2021 20:34:53 +0200 Subject: [PATCH] Add freeze.py to generate msi file for windows. (Bug fixed) --- .github/GenPKG.sh | 6 ------ .github/rare | 1 - .github/workflows/release.yml | 34 +++++++++++++++++++++++++++++++-- freeze.py | 36 +++++++++++++++++++++++++++++++++++ rare/__main__.py | 9 ++++++--- 5 files changed, 74 insertions(+), 12 deletions(-) delete mode 100755 .github/GenPKG.sh delete mode 160000 .github/rare create mode 100644 freeze.py diff --git a/.github/GenPKG.sh b/.github/GenPKG.sh deleted file mode 100755 index a17e5031..00000000 --- a/.github/GenPKG.sh +++ /dev/null @@ -1,6 +0,0 @@ -export PYTHONPATH=$PWD -version=$(python3 rare --version) -cd .github -git clone https://aur.archlinux.org/rare.git -cd .. -sed -i "s/.*pkgver=.*/pkgver=$version/" .github/rare/PKGBUILD diff --git a/.github/rare b/.github/rare deleted file mode 160000 index f689dace..00000000 --- a/.github/rare +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f689dacef1b8902da34aae7eff85a1bbe8e0a0a4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b461cc70..7e40d4ae 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,5 +87,35 @@ jobs: tag: ${{ github.ref }} overwrite: true - - + cx_freeze: + runs-on: "windows-latest" + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Dependencies + run: pip3 install -r requirements.txt + + - name: cx_freeze + run: pip3 install --upgrade cx_freeze + + - name: prepare Files + run: mv rare/__main__.py rare/Rare.py + + - name: Build + run: python freeze.py bdist_msi + + - name: Rename File + run: mv dist/* dist/Rare.msi + + - name: Upload to GitHub + uses: svenstaro/upload-release-action@2.2.1 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: dist/Rare.msi + asset_name: Rare.msi + tag: ${{ github.ref }} + overwrite: true \ No newline at end of file diff --git a/freeze.py b/freeze.py new file mode 100644 index 00000000..7f09deaa --- /dev/null +++ b/freeze.py @@ -0,0 +1,36 @@ +from cx_Freeze import setup, Executable + +# Dependencies are automatically detected, but it might need fine tuning. +# "packages": ["os"] is used as example only + +requirements = [ + "requests", + "PIL", + "setuptools", + "wheel", + "PyQt5", + "qtawesome", + "notifypy", + "psutil", + "pypresence", + 'win32com' +] + +bdist_msi_options = { + 'add_to_path': False, + 'initial_target_dir': r'[ProgramFilesFolder]\%s' % "Rare", +} +build_exe_options = {"includes": requirements, "excludes": ["tkinter", "setuptools"]} + +base = "Win32GUI" + +setup( + name="Rare", + version="1.5.0", + description="A GUI for Legendary", + options={"build_exe": build_exe_options}, + shortcutName="Rare", + shortcutDir="DesktopFolder", + executables=[Executable("rare/__main__.py", + base=base, icon="rare/resources/images/Rare.ico")] +) diff --git a/rare/__main__.py b/rare/__main__.py index de841916..02206555 100644 --- a/rare/__main__.py +++ b/rare/__main__.py @@ -34,7 +34,7 @@ def main(): if args.version: print(__version__) - exit(0) + return try: # this object only allows one instance pre machine me = singleton.SingleInstance() @@ -47,12 +47,15 @@ def main(): else: file.write("start") file.close() - - exit(0) + return if args.subparser == "launch": args.silent = True + # fix error in cx_freeze + import multiprocessing + multiprocessing.freeze_support() + from rare.app import start start(args)