From 49795993f19aa7f8fbfbe7b183adca15b9bf25d3 Mon Sep 17 00:00:00 2001 From: Wrycu Date: Wed, 10 Jul 2019 23:17:52 -0700 Subject: [PATCH] refactor(release): clean up release build process * handle case where a dist has never been created * ignore requirements.txt * include map resources instead of pulling from submodule --- pyinstaller.spec | 79 +++++++++++++++++++---------------- resources/caucasus.p | Bin 0 -> 40578 bytes resources/nevada.p | Bin 0 -> 720 bytes resources/tools/mkrelease.py | 15 ++++--- 4 files changed, 51 insertions(+), 43 deletions(-) create mode 100644 resources/caucasus.p create mode 100644 resources/nevada.p diff --git a/pyinstaller.spec b/pyinstaller.spec index dd61e5f3..ea2535c5 100644 --- a/pyinstaller.spec +++ b/pyinstaller.spec @@ -3,38 +3,47 @@ block_cipher = None -a = Analysis(['__init__.py'], - pathex=['C:\\Users\\shdwp\\PycharmProjects\\dcs_liberation'], - binaries=[], - datas=[ - ('resources', 'resources'), - ('submodules/dcs/dcs/terrain/caucasus.p', 'dcs/terrain/'), - ('submodules/dcs/dcs/terrain/nevada.p', 'dcs/terrain/'), - ], - hookspath=[], - runtime_hooks=[], - excludes=[], - win_no_prefer_redirects=False, - win_private_assemblies=False, - cipher=block_cipher, - noarchive=False) -pyz = PYZ(a.pure, a.zipped_data, - cipher=block_cipher) -exe = EXE(pyz, - a.scripts, - [], - icon="resources/icon.ico", - exclude_binaries=True, - name='liberation_main', - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, - console=True ) -coll = COLLECT(exe, - a.binaries, - a.zipfiles, - a.datas, - strip=False, - upx=True, - name='dcs_liberation') +analysis = Analysis( + ['__init__.py'], + pathex=['.'], + binaries=[], + datas=[ + ('resources', 'resources'), + ('resources/caucasus.p', 'dcs/terrain/'), + ('resources/nevada.p', 'dcs/terrain/'), + ], + hookspath=[], + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False, +) +pyz = PYZ( + analysis.pure, + analysis.zipped_data, + cipher=block_cipher, +) +exe = EXE( + pyz, + analysis.scripts, + [], + icon="resources/icon.ico", + exclude_binaries=True, + name='liberation_main', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + console=True, +) +coll = COLLECT( + exe, + analysis.binaries, + analysis.zipfiles, + analysis.datas, + strip=False, + upx=True, + name='dcs_liberation', +) diff --git a/resources/caucasus.p b/resources/caucasus.p new file mode 100644 index 0000000000000000000000000000000000000000..a6cb642ee1382b67e1b28f57f754876d18dee6e8 GIT binary patch literal 40578 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