Files
qt5/coin/provisioning/common/unix/libclang.sh
Luca Di Sera 487c92a3d0 Update QDoc libclang to 15.0.0
The `libclang_version` variable is now updated to the current version, 15.0.0,
in both "coin/provisioning/common/unix/libclang.sh" and
"coin/provisioning/common/windows/libclang.ps1".

The naming of the artifacts for the provided library was slightly
changed from previous versions.

Before, the version number would contain two integers separated by a
dot.
The generated artifact would be named after this version number, with
the dot removed.

That is, for example, for version 12.0, a release artifact would be
called "libclang-release_120.*".

The updated two version uses a three segments version number and,
furthermore, the artifacts name do not collapse the separating dots such
that a release artifact would be called "libclang-release_15.0.0.*".

To support the new naming scheme, some processing was removed from both
provisioning scripts.

For Windows, the line removing all dots from the `libclang_version`
variable was removed.

For Unix, the removal of the dots in the `libclang_version`
variable when expanding the variable to generate the target urls to
retrieve the artifact was removed, using the bare value of the variable
itself.

For Unix provisioning, the artifacts for some of the platform, namely
"CentOS" and "Ubuntu 22.04", are not provided anymore.

"CentOS" was replaced by "Rhel8.4" on "gcc10.0", hence the target url
for the redhat platform was modified based on the new name.

The "Ubuntu 22.04" artifacts were not provided, such that the platform
was removed.

The sha1 of the target artifacts on both provisioning script was updated
for all platforms.

Task-number: QTBUG-107199
Pick-to: 6.4
Change-Id: I873680825b0953e897c610fb0b47f3cd90625646
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2022-11-17 20:20:33 +01:00

94 lines
4.1 KiB
Bash
Executable File

#!/usr/bin/env bash
#############################################################################
##
## Copyright (C) 2020 The Qt Company Ltd.
## Contact: https://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see https://www.qt.io/terms-conditions. For further
## information use the contact form at https://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 3 as published by the Free Software
## Foundation and appearing in the file LICENSE.LGPL3 included in the
## packaging of this file. Please review the following information to
## ensure the GNU Lesser General Public License version 3 requirements
## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
##
## GNU General Public License Usage
## Alternatively, this file may be used under the terms of the GNU
## General Public License version 2.0 or (at your option) the GNU General
## Public license version 3 or any later version approved by the KDE Free
## Qt Foundation. The licenses are as published by the Free Software
## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
## included in the packaging of this file. Please review the following
## information to ensure the GNU General Public License requirements will
## be met: https://www.gnu.org/licenses/gpl-2.0.html and
## https://www.gnu.org/licenses/gpl-3.0.html.
##
## $QT_END_LICENSE$
##
#############################################################################
# PySide versions following 5.6 use a C++ parser based on Clang (http://clang.org/).
# The Clang library (C-bindings), version 3.9 or higher is required for building.
# This same script is used to provision libclang to Linux and macOS.
# In case of Linux, we expect to get the values as args
set -e
# shellcheck source=./check_and_set_proxy.sh
source "${BASH_SOURCE%/*}/check_and_set_proxy.sh"
# shellcheck source=./SetEnvVar.sh
source "${BASH_SOURCE%/*}/SetEnvVar.sh"
# shellcheck source=./DownloadURL.sh
source "${BASH_SOURCE%/*}/DownloadURL.sh"
libclang_version="15.0.0"
if uname -a |grep -q Darwin; then
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-mac.7z"
url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_${version}-based-mac.7z"
sha1="6d916a17459c81551dde47580ae3f071e93338a5"
elif test -f /etc/redhat-release && cat /etc/redhat-release | grep "Red Hat" | grep -v "8" ; then
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Rhel8.4-gcc10.0-x86_64.7z"
url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Rhel8.4-gcc10.0-x86_64.7z"
sha1="6ca035bb522022d34d61759e0460845832933b5c"
else
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Ubuntu20.04-gcc9.3-x86_64.7z"
url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Ubuntu20.04-gcc9.3-x86_64.7z"
sha1="bd6615012b8bdb2720a45ede56e05f6db7191843"
fi
zip="/tmp/libclang.7z"
destination="/usr/local/libclang-$version"
DownloadURL $url_cached $url $sha1 $zip
if command -v 7zr &> /dev/null; then
sudo 7zr x $zip -o/usr/local/
else
sudo 7z x $zip -o/usr/local/
fi
sudo mv /usr/local/libclang "$destination"
rm -rf $zip
echo "export LLVM_INSTALL_DIR=$destination" >> ~/.bash_profile
echo "libClang = $version" >> ~/versions.txt
# This is a hacked static build of libclang which requires special
# handling on the qdoc side.
SetEnvVar "QDOC_USE_STATIC_LIBCLANG" "1"