summaryrefslogtreecommitdiffstats
path: root/core/includes/qt.inc
diff options
context:
space:
mode:
Diffstat (limited to 'core/includes/qt.inc')
-rw-r--r--core/includes/qt.inc30
1 files changed, 30 insertions, 0 deletions
diff --git a/core/includes/qt.inc b/core/includes/qt.inc
new file mode 100644
index 00000000..2b13c1f3
--- /dev/null
+++ b/core/includes/qt.inc
@@ -0,0 +1,30 @@
+activate_qt() {
+ [ $# -eq 1 ] || perror "activate_qt() requires the version as only argument, $# given."
+ local QT_VERSION="$1"
+ # Handle environment
+ export QT_SELECT="qt${QT_VERSION}"
+ QTDIR="/usr/share/qt${QT_VERSION}"
+ [ -d "$QTDIR" ] && export QTDIR
+ # Handle qt chooser
+ [ -d "/usr/share/qtchooser" ] || return 0 # No qtchooser found, hope for the best...
+ local QT_DEFAULT="$(readlink -f /usr/share/qtchooser/default.conf)"
+ if [ -e "$QT_DEFAULT" ]; then
+ [[ "$(basename "$QT_DEFAULT")" =~ ^qt$QT_VERSION.*\.conf$ ]] || perror "Something with QT4 is bad. Check '/usr/share/qtchooser'"
+ else
+ # no default active, try to set it
+ local QT_CANDIDATES="$(find "/usr/share/qtchooser" -name "qt$QT_VERSION*" | grep -E "$ARCHREGEX")"
+ [ -z "$QT_CANDIDATES" ] && QT_CANDIDATES="$(find "/usr/share/qtchooser" -name "qt$QT_VERSION*")"
+ local QTS="$(echo "$QT_CANDIDATES" | wc -w)"
+ if [ "$QTS" -eq 1 ]; then
+ # we found it, lets activate it and hope for the best
+ ln -sf "/usr/share/qtchooser/$QT_CANDIDATES" "/usr/share/qtchooser/default.conf" \
+ || perror "Could not link 'default.conf' to '/usr/share/qtchooser/$QT_CANDIDATES'"
+ elif [ "$QTS" -eq 0 ]; then
+ perror "No qt ${QT_VERSION} config found in /usr/share/qtchooser"
+ else
+ # here we have the case with different qt4 files or none at all
+ # in both cases, there is a bigger problem we shouldn't try to guess which one is correct
+ perror "More than one qt ${QT_VERSION} version found in '/usr/share/qtchooser'. The configuration is messy. Fix it first."
+ fi
+ fi
+}