1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 10:46:35 +01:00

Mac: Copy missing dylib to bundle and document (#2184)

This commit is contained in:
Marti Martz 2017-01-31 11:16:14 -07:00 committed by David Rosca
parent 9a2bda2063
commit bde4b3ad0e
2 changed files with 40 additions and 9 deletions

View File

@ -44,13 +44,13 @@ Linux / Unix
MAC OS X MAC OS X
---------------------------------------------------------------------------------- ----------------------------------------------------------------------------------
You need to have Xcode from the Apple App Store installed in Applications, [Command Line Tools for the same Xcode version](https://developer.apple.com/), You need to have Xcode from the Apple App Store installed in Applications, [Command Line Tools for the same Xcode version](https://developer.apple.com/) may be included depending on the version,
[Homebrew](http://brew.sh/), and `$ brew install openssl` for openssl. [Homebrew](http://brew.sh/), and `$ brew install openssl` for openssl.
Next compulsory requirement is Qt 5 (>= 5.7) with QtWebEngine. Next compulsory requirement is Qt 5 (>= 5.7) with QtWebEngine.
After successful compilation, you need to run macdeploy.sh script to correctly After successful compilation, you need to build the application bundle and follow any
build the application bundle. You will do it with following command: instructions that may be presented. You will do it with following command:
$ ./mac/macdeploy.sh <path-to-macdeployqt> $ ./mac/macdeploy.sh [<path-to-macdeployqt>]
You need to specify path to macdeployqt (usually in QTDIR/bin/macdeployqt) only You need to specify path to macdeployqt (usually in QTDIR/bin/macdeployqt) only
if it is not in PATH. if it is not in PATH.

View File

@ -7,6 +7,8 @@
MACDEPLOYQT="macdeployqt" MACDEPLOYQT="macdeployqt"
LIBRARY_NAME="libQupZilla.2.dylib" LIBRARY_NAME="libQupZilla.2.dylib"
PLUGINS="QupZilla.app/Contents/Resources/plugins"
QTPLUGINS="QupZilla.app/Contents/PlugIns"
if [ -n "$1" ]; then if [ -n "$1" ]; then
MACDEPLOYQT=$1 MACDEPLOYQT=$1
@ -19,23 +21,52 @@ cd bin
# copy libQupZilla into bundle # copy libQupZilla into bundle
cp $LIBRARY_NAME QupZilla.app/Contents/MacOS/ cp $LIBRARY_NAME QupZilla.app/Contents/MacOS/
# copy all plugins into bundle # copy all QupZilla plugins into bundle
test -d QupZilla.app/Contents/Resources/plugins || mkdir QupZilla.app/Contents/Resources/plugins test -d $PLUGINS || mkdir $PLUGINS
cp plugins/*.dylib QupZilla.app/Contents/Resources/plugins/ cp plugins/*.dylib $PLUGINS/
# fix libQupZilla # fix libQupZilla
install_name_tool -change $LIBRARY_NAME @executable_path/$LIBRARY_NAME QupZilla.app/Contents/MacOS/QupZilla install_name_tool -change $LIBRARY_NAME @executable_path/$LIBRARY_NAME QupZilla.app/Contents/MacOS/QupZilla
# fix plugins # fix plugins
for plugin in QupZilla.app/Contents/Resources/plugins/*.dylib for plugin in $PLUGINS/*.dylib
do do
install_name_tool -change $LIBRARY_NAME @executable_path/$LIBRARY_NAME $plugin install_name_tool -change $LIBRARY_NAME @executable_path/$LIBRARY_NAME $plugin
done 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 # run macdeployqt
$MACDEPLOYQT QupZilla.app $MACDEPLOYQT QupZilla.app
# create final dmg image # create final dmg image
cd ../mac cd ../mac
./create_dmg.sh ./create_dmg.sh