.PHONY: test test: unset KOSMORRO_LATITUDE; \ unset KOSMORRO_LONGITUDE; \ unset KOSMORRO_TIMEZONE; \ LANG=C pipenv run python3 -m coverage run -m unittest test .PHONY: build build: i18n python3 setup.py sdist bdist_wheel i18n: ronn --roff manpage/kosmorro.1.md ronn --roff manpage/kosmorro.7.md if [ "$$POEDITOR_API_ACCESS" != "" ]; then \ python3 .scripts/build/getlangs.py; \ python3 setup.py compile_catalog; \ fi env: @if [[ "$$RELEASE_NUMBER" == "" ]]; \ then echo "Missing environment variable: RELEASE_NUMBER."; \ echo 'Example: export RELEASE_NUMBER="1.0.0" (without the leading "v")'; \ exit 1; \ fi release: env @echo -e "\e[1mCreating release with version number \e[36m$$RELEASE_NUMBER\e[0m" @echo sed "s/^VERSION =.*/VERSION = '$$RELEASE_NUMBER'/g" kosmorrolib/version.py > version.py mv version.py kosmorrolib/version.py pipenv run python setup.py extract_messages --output-file=kosmorrolib/locales/messages.pot > /dev/null conventional-changelog -p angular -i CHANGELOG.md -s sed "0,/\\[\\]/s/\\[\\]/[v$$RELEASE_NUMBER]/g" CHANGELOG.md > /tmp/CHANGELOG.md sed -e "s/...v)/...v$$RELEASE_NUMBER)/" /tmp/CHANGELOG.md > CHANGELOG.md rm /tmp/CHANGELOG.md @echo @echo -e "\e[1mRelease \e[36m$$RELEASE_NUMBER\e[39m is ready to commit." @echo -e "Please review the changes, then invoke \e[33mmake finish-release\e[39m." finish-release: env git add CHANGELOG.md kosmorrolib/version.py kosmorrolib/locales/messages.pot git commit -m "build: bump version $$RELEASE_NUMBER" git tag "v$$RELEASE_NUMBER" git checkout features git merge master git checkout master @echo @echo -e "\e[1mVersion \e[36m$$RELEASE_NUMBER\e[39m successfully tagged!" @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." distmacdmg = dist/Kosmorro.dmg dist-mac-dmg: dist-mac-app @if [ -e $(distmacdmg) ]; then echo "Deleting the existing DMG."; rm -rf $(distmacdmg); fi mkdir -p "$(distmacapp)/Contents/MacOS" mkdir -p dist/dmg cp -r $(distmacapp) dist/dmg create-dmg --volname "Kosmorro installer" \ --volicon build/distrib/darwin/dmg.icns \ --background build/distrib/darwin/dmg-background.png \ --icon-size 72 \ --icon Kosmorro.app 140 120 \ --window-size 640 365 \ --app-drop-link 475 120 \ --eula LICENSE.md \ $(distmacdmg) \ dist/dmg rm -rf dist/dmg dist: dist-mac-dmg