1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-21 09:42:10 +02: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
----------------------------------------------------------------------------------
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.
Next compulsory requirement is Qt 5 (>= 5.7) with QtWebEngine.
After successful compilation, you need to run macdeploy.sh script to correctly
build the application bundle. You will do it with following command:
After successful compilation, you need to build the application bundle and follow any
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
if it is not in PATH.

View File

@ -7,6 +7,8 @@
MACDEPLOYQT="macdeployqt"
LIBRARY_NAME="libQupZilla.2.dylib"
PLUGINS="QupZilla.app/Contents/Resources/plugins"
QTPLUGINS="QupZilla.app/Contents/PlugIns"
if [ -n "$1" ]; then
MACDEPLOYQT=$1
@ -19,23 +21,52 @@ cd bin
# copy libQupZilla into bundle
cp $LIBRARY_NAME QupZilla.app/Contents/MacOS/
# copy all plugins into bundle
test -d QupZilla.app/Contents/Resources/plugins || mkdir QupZilla.app/Contents/Resources/plugins
cp plugins/*.dylib QupZilla.app/Contents/Resources/plugins/
# 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 QupZilla.app/Contents/Resources/plugins/*.dylib
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