mirror of
git://code.qt.io/qt/qt5.git
synced 2026-04-28 23:56:48 +08:00
Yocto toolchain provisioning to CI
Provisioning scripts need to install Yocto toolchains (32 and 64 bit) so that the artifacts aren't needed to be unzipped during Qt builds. Task-number: QTQAINFRA-1454 Change-Id: Idceeabb7aa9ffe2555fb98c94916f8429c32af75 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
This commit is contained in:
committed by
Tony Sarajärvi
parent
f132490a61
commit
e3deccd936
@@ -18,6 +18,7 @@ qtci-osx-10.11-x86_64-3 Clang
|
|||||||
qtci-osx-10.10-x86_64 Clang Release NoFramework DisableTests
|
qtci-osx-10.10-x86_64 Clang Release NoFramework DisableTests
|
||||||
qtci-macos-10.12-x86_64-8 IOS_ANY x86_64 Clang Release DisableTests Static
|
qtci-macos-10.12-x86_64-8 IOS_ANY x86_64 Clang Release DisableTests Static
|
||||||
qtci-linux-RHEL-7.4-x86_64 Android_ANY armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker
|
qtci-linux-RHEL-7.4-x86_64 Android_ANY armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker
|
||||||
qtci-linux-Ubuntu-16.04-x86_64-1 Boot2Qt_Morty armv7 GCC Release
|
qtci-linux-Ubuntu-16.04-x86_64-1 QEMU armv7 GCC Release
|
||||||
|
qtci-linux-Ubuntu-16.04-x86_64-1 QEMU arm64 GCC Release
|
||||||
qtci-linux-Ubuntu-16.04-x86_64-1 GCC TestOnly LicenseCheck
|
qtci-linux-Ubuntu-16.04-x86_64-1 GCC TestOnly LicenseCheck
|
||||||
qtci-linux-RHEL-6.6-x86_64 QNX_660 armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker
|
qtci-linux-RHEL-6.6-x86_64 QNX_660 armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
Template Target OS Target arch Compiler Features
|
Template Target OS Target arch Compiler Features
|
||||||
--------------------------------- ------------------- ----------- ----------- -------------------------------------------------------------------------------------
|
--------------------------------- ------------------- ----------- ----------- -------------------------------------------------------------------------------------
|
||||||
qtci-linux-Ubuntu-16.04-x86_64-1 Boot2Qt_Morty armv7 GCC DeveloperBuild
|
qtci-linux-Ubuntu-16.04-x86_64-1 QEMU armv7 GCC DeveloperBuild
|
||||||
|
qtci-linux-Ubuntu-16.04-x86_64-1 QEMU arm64 GCC DeveloperBuild
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ cd "$tempDir"
|
|||||||
#latest commit from the master proven to work
|
#latest commit from the master proven to work
|
||||||
git checkout c7f1cf01b8245762ca5864e835d84f6677ae8b1f
|
git checkout c7f1cf01b8245762ca5864e835d84f6677ae8b1f
|
||||||
git submodule update --init pixman
|
git submodule update --init pixman
|
||||||
./configure --target-list=arm-linux-user --static
|
./configure --target-list=arm-linux-user,aarch64-linux-user --static
|
||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
rm -rf "$tempDir"
|
rm -rf "$tempDir"
|
||||||
@@ -51,13 +51,19 @@ rm -rf "$tempDir"
|
|||||||
# Enable binfmt support
|
# Enable binfmt support
|
||||||
sudo apt-get -y install binfmt-support
|
sudo apt-get -y install binfmt-support
|
||||||
|
|
||||||
# Install qemu binfmt
|
# Install qemu binfmt for 32bit and 64bit arm architectures
|
||||||
sudo update-binfmts --package qemu-arm --install arm \
|
sudo update-binfmts --package qemu-arm --install arm \
|
||||||
/usr/local/bin/qemu-arm \
|
/usr/local/bin/qemu-arm \
|
||||||
--magic \
|
--magic \
|
||||||
"\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \
|
"\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \
|
||||||
--mask \
|
--mask \
|
||||||
"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"
|
"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"
|
||||||
|
sudo update-binfmts --package qemu-aarch64 --install aarch64 \
|
||||||
|
/usr/local/bin/qemu-aarch64 \
|
||||||
|
--magic \
|
||||||
|
"\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00" \
|
||||||
|
--mask \
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"
|
||||||
|
|
||||||
# First test using QFont fails if fonts-noto-cjk is installed. This happens because
|
# First test using QFont fails if fonts-noto-cjk is installed. This happens because
|
||||||
# running fontcache for that font takes > 5 mins when run on QEMU. Running fc-cache
|
# running fontcache for that font takes > 5 mins when run on QEMU. Running fc-cache
|
||||||
|
|||||||
89
coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/004-yocto.sh
Executable file
89
coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/004-yocto.sh
Executable file
@@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/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$
|
||||||
|
##
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
# This script installs the Yocto toolchain
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
source "${BASH_SOURCE%/*}/../common/DownloadURL.sh"
|
||||||
|
|
||||||
|
echo "Installing Yocto toolchain for 32-bit b2qt..."
|
||||||
|
|
||||||
|
versionARM="2.2.2"
|
||||||
|
package="b2qt-x86_64-meta-toolchain-b2qt-embedded-sdk-qemuarmv7-2c947f7.sh"
|
||||||
|
PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/boot2qt/morty/$package"
|
||||||
|
AltUrl="http://download.qt.io/development_releases/prebuilt/boot2qt/morty/$package"
|
||||||
|
SHA1="2583ae29951954cb27f12400fcb4ee94738d1430"
|
||||||
|
yoctoInstaller="/tmp/yocto-toolchain-ARMv7.sh"
|
||||||
|
yoctoLocationARMv7="/opt/yocto-armv7"
|
||||||
|
sysrootARMv7="sysroots/armv7ahf-neon-poky-linux-gnueabi"
|
||||||
|
crosscompileARMv7="sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-"
|
||||||
|
|
||||||
|
DownloadURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$yoctoInstaller"
|
||||||
|
chmod +x "$yoctoInstaller"
|
||||||
|
|
||||||
|
/bin/bash "$yoctoInstaller" -y -d "$yoctoLocationARMv7"
|
||||||
|
rm -rf "$yoctoInstaller"
|
||||||
|
|
||||||
|
echo "Installing Yocto toolchain for 64-bit b2qt..."
|
||||||
|
|
||||||
|
versionARM64="2.2.2"
|
||||||
|
package="b2qt-x86_64-meta-toolchain-b2qt-embedded-sdk-qemuarm64-2c947f7.sh"
|
||||||
|
PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/boot2qt/morty/$package"
|
||||||
|
AltUrl="http://download.qt.io/development_releases/prebuilt/boot2qt/morty/$package"
|
||||||
|
SHA1="512b5bc1ad62af88d021eb511eeac4648d661fc6"
|
||||||
|
yoctoInstaller="/tmp/yocto-toolchain-ARM64.sh"
|
||||||
|
yoctoLocationARM64="/opt/yocto-arm64"
|
||||||
|
sysrootARM64="sysroots/aarch64-poky-linux"
|
||||||
|
crosscompileARM64="sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-"
|
||||||
|
|
||||||
|
DownloadURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$yoctoInstaller"
|
||||||
|
chmod +x "$yoctoInstaller"
|
||||||
|
|
||||||
|
/bin/bash "$yoctoInstaller" -y -d "$yoctoLocationARM64"
|
||||||
|
rm -rf "$yoctoInstaller"
|
||||||
|
|
||||||
|
if [ -e "$yoctoLocationARMv7/$sysrootARMv7" -a -e "$yoctoLocationARMv7/${crosscompileARMv7}g++" -a -e "$yoctoLocationARM64/$sysrootARM64" -a -e "$yoctoLocationARM64/${crosscompileARM64}g++" ]; then
|
||||||
|
echo "export QEMUARMV7_TOOLCHAIN_SYSROOT=$yoctoLocationARMv7/$sysrootARMv7" >> ~/.profile
|
||||||
|
echo "export QEMUARMV7_TOOLCHAIN_CROSS_COMPILE=$yoctoLocationARMv7/$crosscompileARMv7" >> ~/.profile
|
||||||
|
echo "export QEMUARM64_TOOLCHAIN_SYSROOT=$yoctoLocationARM64/$sysrootARM64" >> ~/.profile
|
||||||
|
echo "export QEMUARM64_TOOLCHAIN_CROSS_COMPILE=$yoctoLocationARM64/$crosscompileARM64" >> ~/.profile
|
||||||
|
else
|
||||||
|
echo "Error! Couldn't find installation paths for Yocto toolchain. Aborting provisioning." 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Yocto ARMv7 toolchain = $versionARM" >> ~/versions.txt
|
||||||
|
echo "Yocto ARM64 toolchain = $versionARM64" >> ~/versions.txt
|
||||||
Reference in New Issue
Block a user