1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-21 17:52:10 +02:00
falkonOfficial/mac/macdeploy.sh

73 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
#
# Usage: ./macdeploy.sh [<full-path-to-macdeployqt>]
#
# macdeployqt is usually located in QTDIR/bin/macdeployqt
# If path to macdeployqt is not specified, using it from PATH
MACDEPLOYQT="macdeployqt"
LIBRARY_NAME="libQupZilla.2.dylib"
PLUGINS="QupZilla.app/Contents/Resources/plugins"
QTPLUGINS="QupZilla.app/Contents/PlugIns"
if [ -n "$1" ]; then
MACDEPLOYQT=$1
fi
# cd to directory with bundle
test -d bin || cd ..
cd bin
# copy libQupZilla into bundle
cp $LIBRARY_NAME QupZilla.app/Contents/MacOS/
# copy all QupZilla plugins into bundle
test -d $PLUGINS || mkdir $PLUGINS
cp plugins/*.dylib $PLUGINS/
# fix libQupZilla
install_name_tool -change $LIBRARY_NAME @executable_path/$LIBRARY_NAME QupZilla.app/Contents/MacOS/QupZilla
# fix plugins
for plugin in $PLUGINS/*.dylib
do
install_name_tool -change $LIBRARY_NAME @executable_path/$LIBRARY_NAME $plugin
done
# prompt and optionally copy additional Qt native plugin(s) into bundle
echo -n "Do you wish to redistribute known, missing, Qt Library plugins (y/n)? "
old_stty_cfg=$(stty -g)
stty raw -echo
answer=$( while ! head -c 1 | grep -i '[yn]'; do true; done )
stty $old_stty_cfg
if echo "$answer" | grep -iq "^y"; then
if [ -z ${QTDIR+x} ]; then
printf '\nPlease set the environment variable for the Qt platform folder.\n\texample:\n\t$ export QTDIR="$HOME/Qt/5.7/clang_64"\n'
exit 1
else
printf '\nCopying known, missing, Qt native library plugins to target bundle...\n'
mkdir -p $QTPLUGINS
FILE="$QTDIR/plugins/iconengines/libqsvgicon.dylib"
if [ -f "$FILE" ]; then
cp $FILE $QTPLUGINS/
else
echo "$FILE: No such file"
exit 1
fi
fi
else
printf '\nChecking for prior deploy image Qt native library plugins at target bundle...\n'
rm -Rf $QTPLUGINS
fi
# run macdeployqt
$MACDEPLOYQT QupZilla.app
# create final dmg image
cd ../mac
./create_dmg.sh