aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/install-qt.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/install-qt.sh')
-rwxr-xr-xscripts/install-qt.sh46
1 files changed, 35 insertions, 11 deletions
diff --git a/scripts/install-qt.sh b/scripts/install-qt.sh
index f85ea157a..a66ac28b1 100755
--- a/scripts/install-qt.sh
+++ b/scripts/install-qt.sh
@@ -222,6 +222,22 @@ if ${INSTALLATION_IS_VALID}; then
exit 0
fi
+MIRRORS="\
+ http://download.qt.io \
+ http://ftp.acc.umu.se/mirror/qt.io/qtproject \
+ http://qt.mirrors.tds.net/qt \
+ http://ftp.fau.de/qtproject \
+"
+
+for MIRROR in ${MIRRORS}; do
+ if curl "${MIRROR}/online" -s -f -o /dev/null; then
+ break;
+ else
+ echo "Server ${MIRROR} not availabe. Trying next alternative..." >&2
+ MIRROR=""
+ fi
+done
+
DOWNLOAD_DIR=`mktemp -d 2>/dev/null || mktemp -d -t 'install-qt'`
#
@@ -230,13 +246,13 @@ DOWNLOAD_DIR=`mktemp -d 2>/dev/null || mktemp -d -t 'install-qt'`
function compute_url(){
local COMPONENT=$1
local CURL="curl -s -L"
- local BASE_URL="http://download.qt.io/online/qtsdkrepository/${HOST_OS}/${TARGET_PLATFORM}"
+ local BASE_URL="${MIRROR}/online/qtsdkrepository/${HOST_OS}/${TARGET_PLATFORM}"
local ANDROID_ARCH=$(echo ${TOOLCHAIN##android_})
if [[ "${COMPONENT}" =~ "qtcreator" ]]; then
SHORT_VERSION=${VERSION%??}
- BASE_URL="http://download.qt.io/official_releases/qtcreator"
+ BASE_URL="${MIRROR}/official_releases/qtcreator"
REMOTE_PATH="${SHORT_VERSION}/${VERSION}/installer_source/${HOST_OS}/qtcreator.7z"
echo "${BASE_URL}/${REMOTE_PATH}"
return 0
@@ -245,6 +261,7 @@ function compute_url(){
REMOTE_BASES=(
# New repository format (>=6.0.0)
"qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${TOOLCHAIN}"
+ "qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${COMPONENT}.${TOOLCHAIN}"
"qt6_${VERSION//./}_${ANDROID_ARCH}/qt.qt6.${VERSION//./}.${TOOLCHAIN}"
"qt6_${VERSION//./}_${ANDROID_ARCH}/qt.qt6.${VERSION//./}.${COMPONENT}.${TOOLCHAIN}"
# New repository format (>=5.9.6)
@@ -276,11 +293,18 @@ rm -f "${HASH_FILEPATH}"
for COMPONENT in ${COMPONENTS}; do
+ if [[ "${COMPONENT}" =~ "qtcreator" ]] && [[ "${HOST_OS}" != "mac_x64" ]]; then
+ UNPACK_DIR="${INSTALL_DIR}/Tools/QtCreator"
+ mkdir -p ${UNPACK_DIR}
+ else
+ UNPACK_DIR="${INSTALL_DIR}"
+ fi
+
URL="$(compute_url ${COMPONENT})"
echo "Downloading ${COMPONENT} ${URL}..." >&2
curl --progress-bar -L -o ${DOWNLOAD_DIR}/package.7z ${URL} >&2
- 7z x -y -o${INSTALL_DIR} ${DOWNLOAD_DIR}/package.7z >/dev/null 2>&1
- 7z l -ba -slt -y ${DOWNLOAD_DIR}/package.7z | tr '\\' '/' | sed -n -e "s|^Path\ =\ |${INSTALL_DIR}/|p" >> "${HASH_FILEPATH}" 2>/dev/null
+ 7z x -y -o${UNPACK_DIR} ${DOWNLOAD_DIR}/package.7z >/dev/null 2>&1
+ 7z l -ba -slt -y ${DOWNLOAD_DIR}/package.7z | tr '\\' '/' | sed -n -e "s|^Path\ =\ |${UNPACK_DIR}/|p" >> "${HASH_FILEPATH}" 2>/dev/null
rm -f ${DOWNLOAD_DIR}/package.7z
#
@@ -302,21 +326,21 @@ for COMPONENT in ${COMPONENTS}; do
fi
if [ "${TARGET_PLATFORM}" == "android" ] && [ ! "${QT_VERSION}" \< "6.0.0" ]; then
- CONF_FILE="${INSTALL_DIR}/${VERSION}/${SUBDIR}/bin/target_qt.conf"
+ CONF_FILE="${UNPACK_DIR}/${VERSION}/${SUBDIR}/bin/target_qt.conf"
sed -i "s|target|../$TOOLCHAIN|g" "${CONF_FILE}"
sed -i "/HostPrefix/ s|$|gcc_64|g" "${CONF_FILE}"
- ANDROID_QMAKE_FILE="${INSTALL_DIR}/${VERSION}/${SUBDIR}/bin/qmake"
- QMAKE_FILE="${INSTALL_DIR}/${VERSION}/gcc_64/bin/qmake"
+ ANDROID_QMAKE_FILE="${UNPACK_DIR}/${VERSION}/${SUBDIR}/bin/qmake"
+ QMAKE_FILE="${UNPACK_DIR}/${VERSION}/gcc_64/bin/qmake"
sed -i "s|\/home\/qt\/work\/install\/bin\/qmake|$QMAKE_FILE|g" "${ANDROID_QMAKE_FILE}"
else
- CONF_FILE="${INSTALL_DIR}/${VERSION}/${SUBDIR}/bin/qt.conf"
+ CONF_FILE="${UNPACK_DIR}/${VERSION}/${SUBDIR}/bin/qt.conf"
echo "[Paths]" > ${CONF_FILE}
echo "Prefix = .." >> ${CONF_FILE}
fi
# Adjust the license to be able to run qmake
# sed with -i requires intermediate file on Mac OS
- PRI_FILE="${INSTALL_DIR}/${VERSION}/${SUBDIR}/mkspecs/qconfig.pri"
+ PRI_FILE="${UNPACK_DIR}/${VERSION}/${SUBDIR}/mkspecs/qconfig.pri"
sed -i.bak 's/Enterprise/OpenSource/g' "${PRI_FILE}"
sed -i.bak 's/licheck.*//g' "${PRI_FILE}"
rm "${PRI_FILE}.bak"
@@ -326,9 +350,9 @@ for COMPONENT in ${COMPONENTS}; do
echo $(dirname "${CONF_FILE}")
elif [[ "${COMPONENT}" =~ "qtcreator" ]]; then
if [ "${HOST_OS}" == "mac_x64" ]; then
- echo "${INSTALL_DIR}/Qt Creator.app/Contents/MacOS"
+ echo "${UNPACK_DIR}/Qt Creator.app/Contents/MacOS"
else
- echo "${INSTALL_DIR}/bin"
+ echo "${UNPACK_DIR}/bin"
fi
fi