summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2013-01-07 16:50:11 -0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-01-08 11:54:02 +0100
commit76bc50eefd9f003ca4a0562ec83f73edd8085610 (patch)
tree7048464192d7d61774c71cca47c7b3cf9b52123b
parentb6335ad4ffc0472a7a7b6bd61d858f3d098ffb63 (diff)
Add bash and zsh scripts to wrap qtchooser
Those scripts are meant to be sourced by the user, usually by an interactive or login shell. They will define two public shell functions: qt and qcd. Change-Id: I9cf27d45ae6a1d91a9cbaf1548b700b1ddba78bf Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
-rw-r--r--scripts/common.sh95
-rw-r--r--scripts/qtchooser.bash57
-rw-r--r--scripts/qtchooser.zsh63
3 files changed, 215 insertions, 0 deletions
diff --git a/scripts/common.sh b/scripts/common.sh
new file mode 100644
index 0000000..946d26e
--- /dev/null
+++ b/scripts/common.sh
@@ -0,0 +1,95 @@
+# -*- mode: sh -*-
+## Copyright (C) 2013 Intel Corportation
+## Contact: http://www.qt-project.org/legal
+##
+## This file is part of the qtchooser module of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:BSD$
+## You may use this file under the terms of the BSD license as follows:
+##
+## "Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions are
+## met:
+## * Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in
+## the documentation and/or other materials provided with the
+## distribution.
+## * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+## of its contributors may be used to endorse or promote products derived
+## from this software without specific prior written permission.
+##
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+##
+## $QT_END_LICENSE$
+##
+
+function qt_env_addto()
+{
+ eval $1="$2\${$1:+:\$$1}"
+}
+
+function qt_select()
+{
+ # Get or set the Qt version
+ if [ $# -eq 0 ]; then
+ # Get the Qt version
+ if [ -z "$QT_SELECT" ]; then
+ echo "Not using Qt."
+ else
+ echo "Using Qt $QT_SELECT"
+ fi
+ else
+ # Set the working Qt version
+ unset QT_SELECT
+ local QTTOOLDIR
+ test x$1 = xnone || eval $(qtchooser -qt=$1 -print-env) || return $?
+
+ # Remove old
+ qt_env_removefrom LD_LIBRARY_PATH $QTLIBDIR
+ qt_env_removefrom PKG_CONFIG_PATH $QTLIBDIR/pkgconfig
+
+ # Add new
+ if [ x$1 != xnone ]; then
+ qt_env_addto LD_LIBRARY_PATH $QTLIBDIR
+ qt_env_addto PKG_CONFIG_PATH $QTLIBDIR/pkgconfig
+
+ echo "Using Qt $1"
+ export LD_LIBRARY_PATH PKG_CONFIG_PATH
+ export QTLIBDIR QT_SELECT
+
+ # try to get the QTDIR from qmake now
+ QTDIR=$(qmake -query QT_INSTALL_PREFIX)
+ export QTDIR
+ else
+ unset QTLIBDIR QTDIR QT_SELECT
+
+ if qtchooser -print-env >/dev/null 2>&1; then
+ echo "Using default Qt"
+ else
+ echo "Not using Qt"
+ fi
+ fi
+ fi
+}
+
+function qt() { qt_select "$@" }
+
+function qcd() {
+ local dir="$1"
+ shift 2>/dev/null
+ cd $QTDIR/$dir "$@"
+}
+
diff --git a/scripts/qtchooser.bash b/scripts/qtchooser.bash
new file mode 100644
index 0000000..c445e6f
--- /dev/null
+++ b/scripts/qtchooser.bash
@@ -0,0 +1,57 @@
+# -*- mode: sh -*-
+## Copyright (C) 2013 Intel Corportation
+## Contact: http://www.qt-project.org/legal
+##
+## This file is part of the qtchooser module of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:BSD$
+## You may use this file under the terms of the BSD license as follows:
+##
+## "Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions are
+## met:
+## * Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in
+## the documentation and/or other materials provided with the
+## distribution.
+## * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+## of its contributors may be used to endorse or promote products derived
+## from this software without specific prior written permission.
+##
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+##
+## $QT_END_LICENSE$
+##
+
+source ${0%/*}/common.sh
+
+function qt_env_removefrom()
+{
+ local entry
+ local -a contents
+ local IFS=' '
+ export IFS
+
+ # Split on ':'
+ for entry in `IFS=: eval echo \\\$$1`; do
+ test "$entry" = "$2" || contents=("${contents[@]}" $entry)
+ done
+
+ # Set it again
+ IFS=:
+ eval "$1=\"\${contents[*]}\""
+}
+
diff --git a/scripts/qtchooser.zsh b/scripts/qtchooser.zsh
new file mode 100644
index 0000000..42d449c
--- /dev/null
+++ b/scripts/qtchooser.zsh
@@ -0,0 +1,63 @@
+# -*- mode: sh -*-
+## Copyright (C) 2013 Intel Corportation
+## Contact: http://www.qt-project.org/legal
+##
+## This file is part of the qtchooser module of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:BSD$
+## You may use this file under the terms of the BSD license as follows:
+##
+## "Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions are
+## met:
+## * Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in
+## the documentation and/or other materials provided with the
+## distribution.
+## * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+## of its contributors may be used to endorse or promote products derived
+## from this software without specific prior written permission.
+##
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+##
+## $QT_END_LICENSE$
+##
+
+source ${0%/*}/common.sh
+
+function qt_env_removefrom()
+{
+ local contents
+ local entry
+
+ # Split on ':'
+ for entry in ${(P@s.:.)${1}}; do
+ test "$entry" = "$2" || contents=($contents $entry)
+ done
+
+ # Join with ':'
+ eval $1=${(j.:.)contents}
+}
+
+# completion:
+function _qt() {
+ _wanted arguments expl 'Disable Qt' compadd "none"
+ qtchooser -list-versions | while read ver; do
+ _wanted arguments expl "Qt version $ver" compadd $ver
+ done
+ return 1
+}
+compdef _qt qt