diff --git a/setup.py b/setup.py index dced8caa..574096ef 100755 --- a/setup.py +++ b/setup.py @@ -462,6 +462,8 @@ def genMacOSPlist(): f"{macosBundleIdent}\n" "CFBundleName\n" f"{macosBundleName}\n" + "CFBundleDisplayName\n" + f"{macosBundleName}\n" "CFBundleInfoDictionaryVersion\n" "6.0\n" "CFBundleShortVersionString\n" @@ -504,6 +506,8 @@ def genMacOSPlist(): "\n" ) + print(f"Writing Info.plist to {outDir}/Info.plist") + writeFile(f"{outDir}/Info.plist", plistXML) diff --git a/setup/macos/build.sh b/setup/macos/build.sh index e539b19d..96e261c3 100755 --- a/setup/macos/build.sh +++ b/setup/macos/build.sh @@ -100,6 +100,7 @@ EOF chmod a+x novelWriter.app/Contents/MacOS/novelWriter #do codesigning +#echo "Signing bundle ..." #sudo codesign --sign - --deep --force --entitlements "$SCRIPT_DIR/../macos/App.entitlements" --options runtime "novelWriter.app/Contents/MacOS/novelWriter" # remove bloat diff --git a/setup/macos/generate_icns.sh b/setup/macos/generate_icns.sh index ecc70255..0ca1d9c0 100755 --- a/setup/macos/generate_icns.sh +++ b/setup/macos/generate_icns.sh @@ -1,19 +1,70 @@ #! /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 +function generate_linux () { + echo "Generating on Linux ..." + 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 -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 + if ! command -v convert $> /dev/null + then + echo "convert could not be found, it is required. please install a imagemagick package." + exit + fi -png2icns $SCRIPT_DIR/novelwriter.icns $SCRIPT_DIR/icons/icon_*px.png + mkdir -p $SCRIPT_DIR/icons -rm -r $SCRIPT_DIR/icons + sizes=( 16 32 64 128 256 ) + for base in "${sizes[@]}"; do + let basex2=${base}*2 + size="${base}x${base}" + echo "Copying files for $size" + double=${basex2}x${basex2} + cp $SCRIPT_DIR/../data/hicolor/${size}/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}.png + echo "Resizing ${size}@2x to $double from $size" + convert $SCRIPT_DIR/icons/icon_${size}.png -resize $double $SCRIPT_DIR/icons/icon_${size}@2x.png + done + + png2icns $SCRIPT_DIR/novelwriter.icns $SCRIPT_DIR/icons/icon_*.png + + rm -r $SCRIPT_DIR/icons + + echo "Done" +} + +function generate_macos () { + echo "Generating on MacOs ..." + mkdir -p $SCRIPT_DIR/icons + + echo "Building Iconset ..." + sizes=( 16 32 64 128 256 ) + for base in "${sizes[@]}"; do + let basex2=${base}*2 + size="${base}x${base}" + echo "Copying files for $size" + double=${basex2}x${basex2} + cp $SCRIPT_DIR/../data/hicolor/${size}/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}.png + cp $SCRIPT_DIR/../data/hicolor/${size}/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}@2x.png + echo "Resizing ${size}@2x to $double from $size" + sips -Z $basex2 $SCRIPT_DIR/icons/icon_${size}@2x.png + done + + rm -rf $SCRIPT_DIR/novelwriter.iconset + mv $SCRIPT_DIR/icons $SCRIPT_DIR/novelwriter.iconset + + echo "Generating icns ..." + iconutil -c icns $SCRIPT_DIR/novelwriter.iconset + + echo "Done" +} + +unameOut="$(uname -s)" +case "$unameOut" in + Linux*) generate_linux;; + Darwin*) generate_macos;; + *) echo "Unsupported OS" +esac diff --git a/setup/macos/novelwriter.icns b/setup/macos/novelwriter.icns index 8a05c8e9..884347bf 100644 Binary files a/setup/macos/novelwriter.icns and b/setup/macos/novelwriter.icns differ