From 0eb7185d40a378ab4ab8a55a2d3933bf679866c1 Mon Sep 17 00:00:00 2001 From: Rachel Powers <508861+Ryex@users.noreply.github.com> Date: Wed, 30 Nov 2022 15:14:37 -0700 Subject: [PATCH] feat: add a macos build script Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com> --- macos/Info.plist | 60 ++++++++++++++++++++++++++ macos/Info.plist.in | 60 ++++++++++++++++++++++++++ macos/build.sh | 92 ++++++++++++++++++++++++++++++++++++++++ macos/generate_icns.sh | 19 +++++++++ macos/generate_plist.py | 26 ++++++++++++ macos/novelwriter.icns | Bin 0 -> 77254 bytes 6 files changed, 257 insertions(+) create mode 100644 macos/Info.plist create mode 100644 macos/Info.plist.in create mode 100644 macos/build.sh create mode 100755 macos/generate_icns.sh create mode 100644 macos/generate_plist.py create mode 100644 macos/novelwriter.icns diff --git a/macos/Info.plist b/macos/Info.plist new file mode 100644 index 00000000..835ea503 --- /dev/null +++ b/macos/Info.plist @@ -0,0 +1,60 @@ + + + + + NSPrincipalClass + NSApplication + NSHighResolutionCapable + True + CFBundleDevelopmentRegion + English + CFBundleExecutable + novelwriter + CFBundleGetInfoString + novelWriter: A markdown-like text editor for planning and writing novels. + CFBundleIconFile + novelwriter.icns + CFBundleIdentifier + io.novelwriter.novelWriter + CFBundleName + novelWriter + CFBundleInfoDictionaryVersion + 6.0 + CFBundleShortVersionString + 2.0.1 + CFBundleSignature + ???? + CFBundleVersion + 2.0.1 + CFBundlePackageType + APPL + NSHumanReadableCopyright + © 2018–2022, Veronica Berglyd Olsen + IFMajorVersion + 0 + IFMinorVersion + 1 + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + nwx + + CFBundleTypeName + novelWriter Project + CFBundleTypeOSTypes + + TEXT + utxt + TUTX + **** + + CFBundleTypeRole + Viewer + LSHandlerRank + Alternate + + + + \ No newline at end of file diff --git a/macos/Info.plist.in b/macos/Info.plist.in new file mode 100644 index 00000000..f5ab4d2c --- /dev/null +++ b/macos/Info.plist.in @@ -0,0 +1,60 @@ + + + + + NSPrincipalClass + NSApplication + NSHighResolutionCapable + True + CFBundleDevelopmentRegion + English + CFBundleExecutable + {MACOSX_BUNDLE_EXACUTABLE_NAME} + CFBundleGetInfoString + {MACOSX_BUNDLE_INFO_STRING} + CFBundleIconFile + {MACOSX_BUNDLE_ICON_FILE} + CFBundleIdentifier + {MACOSX_BUNDLE_IDENTIFIER} + CFBundleName + {MACOSX_BUNDLE_NAME} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleShortVersionString + {MACOSX_BUNDLE_SHORT_VERSION} + CFBundleSignature + ???? + CFBundleVersion + {MACOSX_BUNDLE_VERSION} + CFBundlePackageType + APPL + NSHumanReadableCopyright + {MACOSX_BUNDLE_COPYRIGHT} + IFMajorVersion + 0 + IFMinorVersion + 1 + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + nwx + + CFBundleTypeName + novelWriter Project + CFBundleTypeOSTypes + + TEXT + utxt + TUTX + **** + + CFBundleTypeRole + Viewer + LSHandlerRank + Alternate + + + + \ No newline at end of file diff --git a/macos/build.sh b/macos/build.sh new file mode 100644 index 00000000..9259d3a7 --- /dev/null +++ b/macos/build.sh @@ -0,0 +1,92 @@ +#! /bin/bash + +# use RAM disk if possible +if [ -d /dev/shm ]; then + TEMP_BASE=/dev/shm +else + TEMP_BASE=/tmp +fi + +BUILD_DIR=$(mktemp -d "$TEMP_BASE/novelWriter-build-XXXXXX") + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +cleanup () { + if [ -d "$BUILD_DIR" ]; then + rm -rf "$BUILD_DIR" + fi +} + +trap cleanup EXIT + +OLD_CWD="$(pwd)" + +VERSION="$(awk '/^__version__/{print substr($NF,2,length($NF)-2)}' $SCRIPT_DIR/../novelwriter/__init__.py)" + + +pushd "$BUILD_DIR"/ || exit 1 + +# install Miniconda, a self-contained Python distribution +wget https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh +bash Miniconda3-latest-MacOSX-x86_64.sh -b -p ~/miniconda -f +rm Miniconda3-latest-MacOSX-x86_64.sh +export PATH="$HOME/miniconda/bin:$PATH" + +# create conda env +conda create -n novelWriter python --yes +source activate novelWriter + +# install dependencies +pip install -r "$SCRIPT_DIR/../requirements.txt" + +# leave conda env +source deactivate + +# create .app Framework +mkdir -p novelWriter.app/Contents/ +mkdir novelWriter.app/Contents/MacOS novelWriter.app/Contents/Resources novelWriter.app/Contents/Resources/novelWriter +mv $SCRIPT_DIR/../macos/Info.plist novelWriter.app/Contents/Info.plist + +# copy Miniconda env +cp -R ~/miniconda/envs/novelWriter/* novelWriter.app/Contents/Resources/ + +# copy Pext +cp -R $SCRIPT_DIR/../* novelWriter.app/Contents/Resources/novelWriter/ + + +# create entry script +cat > novelWriter.app/Contents/MacOS/novelWriter <<\EOF +#!/bin/bash +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +$DIR/../Resources/bin/python -sE $DIR/../Resources/novelWriter/novelwriter $@ +EOF + +# make executable +chmod a+x novelWriter.app/Contents/MacOS/novelWriter + +# remove bloat +pushd novelWriter.app/Contents/Resources || exit 1 + +# cleanup commands HERE +find . -type d -iname '__pycache__' -print0 | xargs -0 rm -r + +#remove web engine +rm lib/python3.7/site-packages/PyQt5/QtWebEngine* || true +rm -r lib/python3.7/site-packages/PyQt5/Qt/translations/qtwebengine* || true +rm lib/python3.7/site-packages/PyQt5/Qt/resources/qtwebengine* || true +rm -r lib/python3.7/site-packages/PyQt5/Qt/qml/QtWebEngine* || true +rm -r lib/python3.7/site-packages/PyQt5/Qt/plugins/webview/libqtwebview* || true +rm lib/python3.7/site-packages/PyQt5/Qt/libexec/QtWebEngineProcess* || true +rm lib/python3.7/site-packages/PyQt5/Qt/lib/libQt5WebEngine* || true + +popd || exit 1 +popd || exit 1 + + +# generate .dmg + +brew install create-dmg +# "--skip-jenkins" is a temporary workaround for https://github.com/create-dmg/create-dmg/issues/72 +create-dmg --skip-jenkins --volname "novelWriter $VERSION" --volicon $SCRIPT_DIR/../macos/novelwriter.icns \ + --window-pos 200 120 --window-size 800 400 --icon-size 100 --icon novelWriter.app 200 190 --hide-extension novelWriter.app \ + --app-drop-link 600 185 novelWriter-"${VERSION}".dmg "$BUILD_DIR"/ diff --git a/macos/generate_icns.sh b/macos/generate_icns.sh new file mode 100755 index 00000000..ef4747dc --- /dev/null +++ b/macos/generate_icns.sh @@ -0,0 +1,19 @@ +#! /usr/bin/env bash + +if ! command -v png2icns &> /dev/null +then + echo "png2icns cound not be found, it is required. Please install a package like icnsutils or libicns." + exit +fi + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +mkdir -p $SCRIPT_DIR/icons + +for size in 16x16 32x32 48x48 128x128 256x256; do + cp $SCRIPT_DIR/../setup/data/hicolor/$size/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}px.png +done + +png2icns $SCRIPT_DIR/novelwriter.icns $SCRIPT_DIR/icons/icon_*px.png + +rm -r $SCRIPT_DIR/icons \ No newline at end of file diff --git a/macos/generate_plist.py b/macos/generate_plist.py new file mode 100644 index 00000000..2f6e3c26 --- /dev/null +++ b/macos/generate_plist.py @@ -0,0 +1,26 @@ +import os + +SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) + +SETTINGS = { + "MACOSX_BUNDLE_COPYRIGHT": "© 2018–2022, Veronica Berglyd Olsen ", + "MACOSX_BUNDLE_IDENTIFIER": "io.novelwriter.novelWriter", + "MACOSX_BUNDLE_NAME": "novelWriter", + "MACOSX_BUNDLE_EXACUTABLE_NAME": "novelwriter", + "MACOSX_BUNDLE_ICON_FILE": "novelwriter.icns", + "MACOSX_BUNDLE_INFO_STRING": "novelWriter: A markdown-like text editor for planning and writing novels.", + "MACOSX_BUNDLE_SHORT_VERSION": "2.0.1", # Must be purely numerical + "MACOSX_BUNDLE_VERSION": "2.0.1", # Must be purely numerical +} + +if __name__ == "__main__": + + template_filename = os.path.join(SCRIPT_DIR, "Info.plist.in") + with open(template_filename, "r") as tmfile: + template = tmfile.read() + + plist = template.format(**SETTINGS) + + plist_filename = os.path.join(SCRIPT_DIR, "Info.plist") + with open(plist_filename, "w") as plistfile: + plistfile.write(plist) diff --git a/macos/novelwriter.icns b/macos/novelwriter.icns new file mode 100644 index 0000000000000000000000000000000000000000..8a05c8e916738c6ed6e4b5f3a618927429414dd4 GIT binary patch literal 77254 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 li%OX|FGRI