diff options
Diffstat (limited to 'core/includes/qt.inc')
-rw-r--r-- | core/includes/qt.inc | 30 |
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 +} |