From 0c687679c7cd434728e614a181301e03d5b87ff5 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Wed, 9 Oct 2019 13:19:25 +0200 Subject: platform_configs: add Android arm64 build on RHEL 7.6 host * install vcpkg and for android * a remaining issue in vcpkg: https://github.com/microsoft/vcpkg/issues/8506 Task-number: QTBUG-78945 Change-Id: I484612e2157bf1c1142934cc4f27729e8be37b89 Reviewed-by: Simon Hausmann Reviewed-by: Qt CMake Build Bot --- coin/platform_configs/default.yaml | 8 +++ coin/provisioning/common/linux/vcpkg.sh | 72 ++++++++++++++++++++++ .../qtci-linux-RHEL-7.6-x86_64/56-vcpkg.sh | 5 ++ 3 files changed, 85 insertions(+) create mode 100755 coin/provisioning/common/linux/vcpkg.sh create mode 100755 coin/provisioning/qtci-linux-RHEL-7.6-x86_64/56-vcpkg.sh diff --git a/coin/platform_configs/default.yaml b/coin/platform_configs/default.yaml index 0e3aefa6..6b0ddd46 100644 --- a/coin/platform_configs/default.yaml +++ b/coin/platform_configs/default.yaml @@ -20,3 +20,11 @@ Configurations: Template: 'qtci-linux-RHEL-7.6-x86_64' Compiler: 'GCC' Configure arguments: '-DBUILD_EXAMPLES=OFF' +- + Template: 'qtci-linux-RHEL-7.6-x86_64' + Target os: 'Android_ANY' + Target arch: 'arm64' + Compiler: 'GCC' + Target compiler: 'Clang' + Configure arguments: '-DBUILD_EXAMPLES=OFF' + Environment variables: ['TARGET_CONFIGURE_ARGS=-DBUILD_EXAMPLES=OFF -DCMAKE_TOOLCHAIN_FILE={{.Env.ANDROID_NDK_ROOT}}/build/cmake/android.toolchain.cmake -DANDROID_SDK_ROOT={{.Env.ANDROID_SDK_HOME}} -DANDROID_ABI=arm64-v8a -DVCPKG_TARGET_TRIPLET=arm64-android'] diff --git a/coin/provisioning/common/linux/vcpkg.sh b/coin/provisioning/common/linux/vcpkg.sh new file mode 100755 index 00000000..a25e91a1 --- /dev/null +++ b/coin/provisioning/common/linux/vcpkg.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2019 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: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$ +## +############################################################################# + +set -ex + +source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" + +# This script installs VcPkg. It is used to provide third-party libraries when cross-compiling +# for example for Emscripten or Android. + +# Refresh to make sure we have the EMSCRIPTEN environment variable, needed for the vcpkg wasm build. +source ~/.bashrc + +version="qt-snapshot-2019-10-09" +officialUrl="https://codeload.github.com/tronical/vcpkg/tar.gz/$version" +targetFile="vcpkg.tar.gz" +targetFolder="$HOME/vcpkg" + +wget --tries=5 --waitretry=5 --progress=dot:giga --output-document="$targetFile" "$officialUrl" + +if [ ! -d "${targetFolder}" ]; then + mkdir -p $targetFolder +fi + +tar -C $targetFolder --strip-components=1 -xvzf $targetFile +rm -rf $targetFile + +SetEnvVar "VCPKG_ROOT" "$targetFolder" + +cd $targetFolder +./bootstrap-vcpkg.sh + +./vcpkg install --triplet arm-android @qt-packages-android.txt +./vcpkg install --triplet arm64-android @qt-packages-android.txt +./vcpkg install --triplet x86-android @qt-packages-android.txt +./vcpkg install --triplet x64-android @qt-packages-android.txt + +rm -rf packages buildtrees downloads + +echo "VCPKG = $version" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-7.6-x86_64/56-vcpkg.sh b/coin/provisioning/qtci-linux-RHEL-7.6-x86_64/56-vcpkg.sh new file mode 100755 index 00000000..5c7f3f1d --- /dev/null +++ b/coin/provisioning/qtci-linux-RHEL-7.6-x86_64/56-vcpkg.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -ex + +"$(dirname "$0")/../common/linux/vcpkg.sh" -- cgit v1.2.3