QGIS/mac/extras/2-release-extra-qt.sh
2012-10-04 19:36:43 +02:00

173 lines
5.8 KiB
Bash
Executable File

#!/bin/sh
###########################################################################
# 2-release-extra-qt.sh
# ---------------------
# Date : May 2009
# Copyright : (C) 2009 by William Kyngesburye
# Email : kyngchaos at kyngchaos dot com
###########################################################################
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
###########################################################################
# Copy Qt frameworks to atlas bundle
# and make search paths for them relative to bundle
APP_PREFIX=/Applications/qgis0.11.0.app
MACOS_PREFIX=${APP_PREFIX}/Contents/MacOS
FRAMEWORKPREFIX=${APP_PREFIX}/Contents/Frameworks
mkdir -p $MACOS_PREFIX
mkdir -p $FRAMEWORKPREFIX
pushd $PWD
cd $FRAMEWORKPREFIX
# Edit version when any library is upgraded
UNIVERSAL_LIBS_PREFIX=/usr/local/qgis_universal_deps
QTPREFIX=${UNIVERSAL_LIBS_PREFIX}/lib
QTFRAMEWORKS="QtCore QtGui QtNetwork QtSql QtSvg QtXml QtDesigner"
#
# Copy supporting frameworks to application bundle
#
cd $FRAMEWORKPREFIX
for FRAMEWORK in $QTFRAMEWORKS
do
LIBFRAMEWORK=$FRAMEWORK.framework/Versions/4/$FRAMEWORK
if test ! -f $LIBFRAMEWORK; then
mkdir -p $FRAMEWORK.framework/Versions/4
cp $QTPREFIX/$LIBFRAMEWORK $LIBFRAMEWORK
install_name_tool -id @executable_path/../Frameworks/$LIBFRAMEWORK $LIBFRAMEWORK
fi
done
# Update path to supporting frameworks
for FRAMEWORK in QtGui QtNetwork QtSql QtSvg QtXml
do
install_name_tool -change ${QTPREFIX}/QtCore.framework/Versions/4/QtCore \
@executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore \
$FRAMEWORK.framework/Versions/4/$FRAMEWORK
done
for FRAMEWORK in QtSvg
do
install_name_tool -change ${QTPREFIX}/QtGui.framework/Versions/4/QtGui \
@executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui \
$FRAMEWORK.framework/Versions/4/$FRAMEWORK
install_name_tool -change ${QTPREFIX}/QtXml.framework/Versions/4/QtXml \
@executable_path/../Frameworks/QtXml.framework/Versions/4/QtXml \
$FRAMEWORK.framework/Versions/4/$FRAMEWORK
done
#
# Update qgis related libs and binaries
#
cd $MACOS_PREFIX
FILES="qgis
lib/libqgis_core.dylib
lib/libqgis_gui.dylib
lib/qgis/libcatalogue.so
lib/qgis/libcopyrightlabelplugin.so
lib/qgis/libgpxprovider.so
lib/qgis/libscalebarplugin.so
lib/qgis/libdelimitedtextplugin.so
lib/qgis/libgridmakerplugin.so
lib/qgis/libwfsplugin.so
lib/qgis/libdelimitedtextprovider.so
lib/qgis/libnortharrowplugin.so
lib/qgis/libwfsprovider.so
lib/qgis/libgeorefplugin.so
lib/qgis/libogrprovider.so
lib/qgis/libwmsprovider.so
lib/qgis/libgpsimporterplugin.so
lib/qgis/libevis.so
lib/qgis/libquickprintplugin.so
share/qgis/python/qgis/core.so
share/qgis/python/qgis/gui.so
lib/libqgispython.dylib"
for FILE in ${FILES}
do
for FRAMEWORK in QtCore QtGui QtNetwork QtSql QtSvg QtXml
do
install_name_tool -change ${QTPREFIX}/${FRAMEWORK}.framework/Versions/4/$FRAMEWORK \
@executable_path/../Frameworks/$FRAMEWORK.framework/Versions/4/$FRAMEWORK \
$MACOS_PREFIX/$FILE
done
done
#
# Update qt imageformat plugin paths
#
cd ${MACOS_PREFIX}/../
mkdir -p plugins/imageformats
cd plugins/imageformats
LIBJPEG=libjpeg.dylib
LIBQJPEG=${UNIVERSAL_LIBS_PREFIX}/plugins/imageformats/libqjpeg.dylib
if test ! -f $LIBJPEG; then
cp $LIBQJPEG $LIBJPEG
# Update path to supporting libraries
install_name_tool -change ${QTPREFIX}/QtCore.framework/Versions/4/QtCore \
@executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore \
$LIBJPEG
install_name_tool -change ${QTPREFIX}/QtGui.framework/Versions/4/QtGui \
@executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui \
$LIBJPEG
install_name_tool -change $LIBQJPEG @executable_path/../plugins/imageformats/$LIBJPEG
fi
LIBGIF=libgif.dylib
LIBQGIF=${UNIVERSAL_LIBS_PREFIX}/plugins/imageformats/libqgif.dylib
if test ! -f $LIBGIF; then
cp $LIBQGIF $LIBGIF
# Update path to supporting libraries
install_name_tool -change ${QTPREFIX}/QtCore.framework/Versions/4/QtCore \
@executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore \
$LIBGIF
install_name_tool -change ${QTPREFIX}/QtGui.framework/Versions/4/QtGui \
@executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui \
$LIBGIF
install_name_tool -change $LIBQGIF @executable_path/../plugins/imageformats/$LIBGIF
fi
#
# QT Sql Drivers
#
cd ${MACOS_PREFIX}/../
mkdir -p plugins/sqldrivers
cd plugins/sqldrivers
LIBSQLITE=libqsqlite.dylib
LIBQSQLITE=${UNIVERSAL_LIBS_PREFIX}/plugins/sqldrivers/libqsqlite.dylib
if test ! -f $LIBSQLITE; then
cp $LIBQSQLITE $LIBSQLITE
# Update path to supporting libraries
install_name_tool -change ${QTPREFIX}/QtCore.framework/Versions/4/QtCore \
@executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore \
$LIBSQLITE
install_name_tool -change ${QTPREFIX}/QtSql.framework/Versions/4/QtSql \
@executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql \
$LIBSQLITE
install_name_tool -change $LIBSQLITE @executable_path/../plugins/sqldrivers/$LIBSQLITE
fi
popd
#
# Strip the qt libs
#
strip -x ${FRAMEWORKPREFIX}/QtGui.framework/Versions/4/QtGui
strip -x ${FRAMEWORKPREFIX}/QtCore.framework/Versions/4/QtCore
strip -x ${FRAMEWORKPREFIX}/QtSql.framework/Versions/4/QtSql
strip -x ${FRAMEWORKPREFIX}/QtSvg.framework/Versions/4/QtSvg
strip -x ${FRAMEWORKPREFIX}/QtXml.framework/Versions/4/QtXml
strip -x ${FRAMEWORKPREFIX}/QtNetwork.framework/Versions/4/QtNetwork
strip -x ${FRAMEWORKPREFIX}/QtDesigner.framework/Versions/4/QtDesigner