diff --git a/.gitignore b/.gitignore index 9e6cdda..abc8249 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ coverage.xml # Translation files are taken care on https://poeditor.com/join/project/GXuhLpdaoh *.mo *.po +/.eggs diff --git a/Makefile b/Makefile index 0f7361d..1c4aa13 100644 --- a/Makefile +++ b/Makefile @@ -57,36 +57,8 @@ finish-release: env @echo -e "Invoke \e[33mgit push origin master features v$$RELEASE_NUMBER\e[39m to finish." distmacapp = dist/Kosmorro.app -dist-mac-app: env - @if [ -e $(distmacapp) ]; then echo "Deleting the existing app."; rm -rf $(distmacapp); fi - mkdir -p "$(distmacapp)/Contents/MacOS" "$(distmacapp)/Contents/Resources" - - # Add application files - cp "kosmorro" "$(distmacapp)/Contents/MacOS/kosmorro" - cp -r "kosmorrolib" "$(distmacapp)/Contents/MacOS/kosmorrolib" - cp "Pipfile" "$(distmacapp)/Contents/MacOS/Pipfile" - cp "Pipfile.lock" "$(distmacapp)/Contents/MacOS/Pipfile.lock" - - # Install dependencies - cd $(distmacapp)/Contents/MacOS && PIPENV_VENV_IN_PROJECT=1 pipenv sync - cd $(distmacapp)/Contents/MacOS && source .venv/bin/activate && pip install wxPython latex - - # Add Python binaries and remove the links in the virtualenv - cp -r "$$(dirname $$(realpath $$(which python3)))/.." $(distmacapp)/Contents/MacOS/python - rm $(distmacapp)/Contents/MacOS/.venv/bin/python{,3,3.9} - - # Add Mac-specific files - cp "build/distrib/darwin/Info.plist" "$(distmacapp)/Contents/Info.plist" - cp "build/distrib/darwin/launch-kosmorro.sh" "$(distmacapp)/Contents/MacOS/launch-kosmorro" - cp "build/distrib/darwin/icon.icns" "$(distmacapp)/Contents/Resources/icon.icns" - - sed "s/{{app_version}}/$$RELEASE_NUMBER/" "build/distrib/darwin/Info.plist" > "$(distmacapp)/Contents/Info.plist" - chmod +x "$(distmacapp)/Contents/MacOS/launch-kosmorro" - - # Clean package - rm "$(distmacapp)/Contents/MacOS/Pipfile" "$(distmacapp)/Contents/MacOS/Pipfile.lock" - - @echo "Application created." +dist-mac-app: + python3 setup-gui-app.py py2app distmacdmg = dist/Kosmorro.dmg dist-mac-dmg: dist-mac-app diff --git a/build/distrib/darwin/Info.plist b/build/distrib/darwin/Info.plist deleted file mode 100644 index 9781cd2..0000000 --- a/build/distrib/darwin/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDisplayName - Kosmorro - CFBundleExecutable - MacOS/launch-kosmorro - CFBundleIconFile - icon.icns - CFBundleIdentifier - space.kosmorro.app - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Kosmorro - CFBundlePackageType - APPL - CFBundleShortVersionString - {{app_version}} - - diff --git a/build/distrib/darwin/launch-kosmorro.sh b/build/distrib/darwin/launch-kosmorro.sh deleted file mode 100644 index ab867e2..0000000 --- a/build/distrib/darwin/launch-kosmorro.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# Move to the MacOS folder -cd $(dirname "$0") - -source .venv/bin/activate -./python/bin/python3 kosmorro --gui diff --git a/kosmorro-gui b/kosmorro-gui new file mode 100644 index 0000000..afff20d --- /dev/null +++ b/kosmorro-gui @@ -0,0 +1,11 @@ +#!/usr/bin/python3 + +from kosmorrolib.gui import mainwindow + + +def main(): + mainwindow.start() + + +if __name__ == '__main__': + main() diff --git a/setup-gui-app.py b/setup-gui-app.py new file mode 100644 index 0000000..ffa51b5 --- /dev/null +++ b/setup-gui-app.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 + +from setuptools import setup +from datetime import date + +from kosmorrolib.version import VERSION + + +APP_DARWIN_IDENTIFIER = 'space.kosmorro.darwin' +EXECUTABLE_NAME = 'kosmorro' +APP_NAME = 'Kosmorro' +APP_COPYRIGHT = 'Jérôme Deuchnord © 2019-%d - GNU Affero General Public License' % date.today().year + +APP = ['kosmorro-gui'] +DATA_FILES = [] +OPTIONS = { + 'plist': { + 'CFBundleName': APP_NAME, + 'CFBundleDisplayName': APP_NAME, + 'CFBundleExecutable': EXECUTABLE_NAME, + 'CFBundleIdentifier': APP_DARWIN_IDENTIFIER, + 'CFBundleShortVersionString': VERSION, + 'NSHumanReadableCopyright': APP_COPYRIGHT + }, + 'iconfile': 'build/distrib/darwin/icon.icns', + 'packages': ','.join(['wx']) +} + +setup( + app=APP, + data_files=DATA_FILES, + options={'py2app': OPTIONS}, + setup_requires=['py2app'], +)