aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Fält <simo.falt@qt.io>2020-08-12 13:32:29 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-12-30 16:59:27 +0000
commitc5378f6cd63ee5743646937f94d57f035e59f844 (patch)
tree769e9f020dad78923462af82775a72f6e887af89
parentbac86c9fba094b0224a5feeead355f50bc826874 (diff)
Provisioning: Install libClang 10 with dynamic libs
As Qt uses only static archives of libclang, we have to install dynamic version as an additional package. Libclang is required for example QtForPython. Change-Id: Ic9d70398113defe3561f261aee369b423c18686a Reviewed-by: Heikki Halmet <heikki.halmet@qt.io> (cherry picked from commit b792fd56dbf8d3ab1c8dd3d53b9afb86ca3555af) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rwxr-xr-xcoin/provisioning/common/unix/libclang-v100-dyn.sh83
-rw-r--r--coin/provisioning/common/windows/libclang-v100-dyn.ps150
-rwxr-xr-xcoin/provisioning/qtci-linux-CentOS-8.1-x86_64/05-libclang-v100-dyn.sh6
-rwxr-xr-xcoin/provisioning/qtci-linux-SLES-15_SP2-x86_64/08-libclang-v100-dyn.sh7
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/04-libclang-v100-dyn.sh4
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.2-x86_64/08-libclang-v100-dyn.sh7
-rwxr-xr-xcoin/provisioning/qtci-macos-10.14-x86_64/28-libclang-v100-dyn.sh6
-rw-r--r--coin/provisioning/qtci-windows-10-x86_64/08-libclang-v100-dyn.ps12
8 files changed, 165 insertions, 0 deletions
diff --git a/coin/provisioning/common/unix/libclang-v100-dyn.sh b/coin/provisioning/common/unix/libclang-v100-dyn.sh
new file mode 100755
index 00000000..d6609429
--- /dev/null
+++ b/coin/provisioning/common/unix/libclang-v100-dyn.sh
@@ -0,0 +1,83 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2017 The Qt Company Ltd.
+## Contact: http://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL21$
+## 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 http://www.qt.io/terms-conditions. For further
+## information use the contact form at http://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 2.1 or version 3 as published by the Free
+## Software Foundation and appearing in the file LICENSE.LGPLv21 and
+## LICENSE.LGPLv3 included in the packaging of this file. Please review the
+## following information to ensure the GNU Lesser General Public License
+## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## As a special exception, The Qt Company gives you certain additional
+## rights. These rights are described in The Qt Company LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## $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=10.0
+
+if uname -a |grep -q Darwin; then
+ version=$libclang_version
+ url="https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_${version//\./}-based-mac.7z"
+ sha1="0fe1fa50b1b469d2c05acc3a3468bc93a66f1e5a"
+ url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_${version//\./}-based-mac.7z"
+elif test -f /etc/redhat-release || /etc/centos-release; then
+ version=$libclang_version
+ url="https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_${version//\./}-based-linux-Rhel7.6-gcc5.3-x86_64.7z"
+ sha1="1d2e265502fc0832a854f989d757105833fbd179"
+ url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/libclang-release_${version//\./}-based-linux-Rhel7.6-gcc5.3-x86_64.7z"
+else
+ version=$libclang_version
+ url="https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_${version//\./}-based-linux-Ubuntu18.04-gcc9.2-x86_64.7z"
+ sha1="c1580acb3a82e193acf86f18afb52427c5e67de8"
+ url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/libclang-release_${version//\./}-based-linux-Ubuntu18.04-gcc9.2-x86_64.7z"
+fi
+
+zip="/tmp/libclang.7z"
+destination="/usr/local/libclang-dynlibs-$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_DYNAMIC_LIBS_100=$destination" >> ~/.bash_profile
+echo "libClang for QtForPython= $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/windows/libclang-v100-dyn.ps1 b/coin/provisioning/common/windows/libclang-v100-dyn.ps1
new file mode 100644
index 00000000..b0792a07
--- /dev/null
+++ b/coin/provisioning/common/windows/libclang-v100-dyn.ps1
@@ -0,0 +1,50 @@
+param(
+ [Int32]$archVer=32,
+ [string]$toolchain="vs2019",
+ [bool]$setDefault=$true
+)
+. "$PSScriptRoot\helpers.ps1"
+
+$libclang_version="10.0"
+Write-Output "libClang for QtForPython = $libclang_version" >> ~/versions.txt
+
+# PySide versions following Qt6 use a C++ parser based on Clang (http://clang.org/).
+# The Clang library (C-bindings), version 8.0 or higher is required for building.
+
+# Starting from Qt 5.11 QDoc requires Clang to parse C++
+
+$baseDestination = "C:\Utils\libclang-" + $libclang_version + "-dynlibs-" + $toolchain
+$libclang_version = $libclang_version -replace '["."]'
+
+function install() {
+
+ param(
+ [string]$sha1=$1,
+ [string]$destination=$2
+ )
+
+ $zip = "c:\users\qt\downloads\libclang-dyn.7z"
+
+ $script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z"
+ $script:CachedUrl = "http://ci-files01-hki.intra.qt.io/input/libclang/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z"
+
+ Download $OfficialUrl $CachedUrl $zip
+ Verify-Checksum $zip $sha1
+ Extract-7Zip $zip C:\Utils\
+ Rename-Item C:\Utils\libclang $destination
+ Remove-Item -Force -Path $zip
+}
+
+if ( $toolchain -eq "vs2019" ) {
+ if ( $archVer -eq 64 ) {
+ $sha1 = "B2C4F24B2388AEBAA6B8FCE3AE4E63D34D1517FE"
+ }
+ else {
+ $sha1 = "b970f51df255a27e0fdb7b665e70ed5281257f40"
+ }
+}
+
+install $sha1 $baseDestination-$archVer
+
+Set-EnvironmentVariable "LLVM_DYNAMIC_LIBS_100" ($baseDestination + "-_ARCH_")
+
diff --git a/coin/provisioning/qtci-linux-CentOS-8.1-x86_64/05-libclang-v100-dyn.sh b/coin/provisioning/qtci-linux-CentOS-8.1-x86_64/05-libclang-v100-dyn.sh
new file mode 100755
index 00000000..fbf34ddd
--- /dev/null
+++ b/coin/provisioning/qtci-linux-CentOS-8.1-x86_64/05-libclang-v100-dyn.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+set -ex
+
+BASEDIR=$(dirname "$0")
+# shellcheck source=../common/unix/libclang-v100-dyn.sh
+"$BASEDIR/../common/unix/libclang-v100-dyn.sh"
diff --git a/coin/provisioning/qtci-linux-SLES-15_SP2-x86_64/08-libclang-v100-dyn.sh b/coin/provisioning/qtci-linux-SLES-15_SP2-x86_64/08-libclang-v100-dyn.sh
new file mode 100755
index 00000000..b0080cbc
--- /dev/null
+++ b/coin/provisioning/qtci-linux-SLES-15_SP2-x86_64/08-libclang-v100-dyn.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -ex
+
+BASEDIR=$(dirname "$0")
+# shellcheck source=../common/unix/libclang-v100-dyn.sh
+"$BASEDIR/../common/unix/libclang-v100-dyn.sh"
diff --git a/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/04-libclang-v100-dyn.sh b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/04-libclang-v100-dyn.sh
new file mode 100755
index 00000000..dcd5b2d8
--- /dev/null
+++ b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/04-libclang-v100-dyn.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+BASEDIR=$(dirname "$0")
+"$BASEDIR/../common/unix/libclang-v100-dyn.sh"
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.2-x86_64/08-libclang-v100-dyn.sh b/coin/provisioning/qtci-linux-openSUSE-15.2-x86_64/08-libclang-v100-dyn.sh
new file mode 100755
index 00000000..b0080cbc
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.2-x86_64/08-libclang-v100-dyn.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -ex
+
+BASEDIR=$(dirname "$0")
+# shellcheck source=../common/unix/libclang-v100-dyn.sh
+"$BASEDIR/../common/unix/libclang-v100-dyn.sh"
diff --git a/coin/provisioning/qtci-macos-10.14-x86_64/28-libclang-v100-dyn.sh b/coin/provisioning/qtci-macos-10.14-x86_64/28-libclang-v100-dyn.sh
new file mode 100755
index 00000000..c9d6e93d
--- /dev/null
+++ b/coin/provisioning/qtci-macos-10.14-x86_64/28-libclang-v100-dyn.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+set -ex
+
+BASEDIR=$(dirname "$0")
+"$BASEDIR/../common/unix/libclang-v100-dyn.sh"
diff --git a/coin/provisioning/qtci-windows-10-x86_64/08-libclang-v100-dyn.ps1 b/coin/provisioning/qtci-windows-10-x86_64/08-libclang-v100-dyn.ps1
new file mode 100644
index 00000000..82b91257
--- /dev/null
+++ b/coin/provisioning/qtci-windows-10-x86_64/08-libclang-v100-dyn.ps1
@@ -0,0 +1,2 @@
+. "$PSScriptRoot\..\common\windows\libclang-v100-dyn.ps1" 64 vs2019
+. "$PSScriptRoot\..\common\windows\libclang-v100-dyn.ps1" 32 vs2019