Files
qt5/coin/provisioning/common/unix/emsdk.sh
Elias Toivola cfe773d749 Provisioning: Exit when an emscripten install command fails
If there is an error in emsdk scripts when running ".\emsdk install",
the provisioning would still continue. This change will make the script
exit and stop provisioning when the install command fails.

Also remove the attempt to use Python 2 and make sure the installation
finds Python 3 instead.

Pick-to: 6.8 6.5
Task-number: QTQAINFRA-5453
Change-Id: If052adcd446537b0eeb6261e4a297e9aeb292c6e
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
(cherry picked from commit 879c8b91f3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-12-22 13:35:21 +00:00

58 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright (C) 2023 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# shellcheck source=./SetEnvVar.sh
source "${BASH_SOURCE%/*}/SetEnvVar.sh"
# shellcheck source=./DownloadURL.sh
source "${BASH_SOURCE%/*}/DownloadURL.sh"
version="3.1.56"
versionNode="v16.20.0"
tarBallVersion="${version//./_}"
if uname -a | grep -q Darwin; then
tarBallPackage="emsdk_macos_${tarBallVersion}.tar.gz"
sha="24c49db971da4fd7c68f6b71984c3d7775fdfb84"
else
tarBallPackage="emsdk_linux_${tarBallVersion}.tar.gz"
sha="410c93bb2ab3b244190c2cb5f0ff1ce5d6ac4eb5"
fi
cacheUrl="https://ci-files01-hki.ci.qt.io/input/emsdk/${tarBallPackage}"
target="/tmp/${tarBallPackage}"
mkdir -p /opt
cd /opt || exit
echo "URL: $cacheUrl"
if DownloadURL "$cacheUrl" "" "$sha" "$target"; then
sudo tar -xzf "$target" -C /opt/
sudo rm -f "$target"
else
echo "Emsdk isn't cached. Cloning it"
sudo git clone https://github.com/emscripten-core/emsdk.git
cd emsdk || exit
if ! sudo ./emsdk install "$version"; then
echo "Error: emsdk installation failed"
exit 1
fi
sudo ./emsdk activate "$version"
fi
# platform-specific toolchain and node binaries. urls obtained from "emsdk install"
if uname -a | grep -q Darwin; then
pathNodeExecutable="node-$versionNode-darwin-x64/bin/node"
else
pathNodeExecutable="node-$versionNode-linux-x64/bin/node"
fi
emsdkPath="/opt/emsdk/"
emscriptenPath="${emsdkPath}upstream/emscripten/"
SetEnvVar "PATH" "\"\$PATH:${emscriptenPath}\""
SetEnvVar "EMSCRIPTEN" "${emscriptenPath}"
SetEnvVar "EMSDK" "${emsdkPath}"
SetEnvVar "EMSDK_NODE" "${emsdkPath}${pathNodeExecutable}"
echo "Emsdk = $version" >> ~/versions.txt