mirror of
git://code.qt.io/qt/qt5.git
synced 2026-02-25 00:15:11 +08:00
Build an iOS configuration in Coin
Install ninja from homebrew. Provision freetype and pcre2 for host builds, like in the macOS 10.13 case. Provision homebrew gcc 9 to build vcpkg. We can't use Xcode 11 clang to build vcpkg, because std::filesystem is only implemented for macOS 10.15, so the deployment target needs to be 10.15, and we don't have any 10.15 VMs currently. Whereas the std::filesystem implementation provided by gcc can work on lower macOS versions. When building vcpkg using the Xcode default provided system headers, the build will fail with the following error: stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage _ctermid.h:26:10: note: previous declaration with 'C++' linkage The Xcode SDK is missing some C++ headers. Usually these are installed manually via an additional step like the one below, but only after installing the command line tools. sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / Apparently not all command line tool packages ship this extra header package, so instead switch the active toolchain to the CLT via xcode-select -p, which seems to always have the necessary headers (at least from my testing). That's why we use the CLT for vcpkg. Bootstrap vcpkg, and install the iOS 3rd party packages using vcpkg. Finally add a configuration to build qtbase targeting iOS. Task-number: QTBUG-75576 Change-Id: Idec885d62b12f96c4830b9ec02b63a89b9cc7b8c Reviewed-by: Dimitrios Apostolou <jimis@qt.io> Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
@@ -28,3 +28,11 @@ Configurations:
|
||||
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 -DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU']
|
||||
-
|
||||
Template: 'qtci-macos-10.14-x86_64'
|
||||
Target os: 'IOS_ANY'
|
||||
Target arch: 'arm64'
|
||||
Compiler: 'Clang'
|
||||
Target compiler: 'Clang'
|
||||
Configure arguments: '-DBUILD_EXAMPLES=OFF -DCMAKE_OSX_SYSROOT:PATH=/Applications/Xcode11.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13'
|
||||
Environment variables: ['TARGET_CONFIGURE_ARGS=-DBUILD_EXAMPLES=OFF -DCMAKE_SYSTEM_NAME=iOS -DQT_UIKIT_SDK=iphoneos -DVCPKG_TARGET_TRIPLET=arm64-ios']
|
||||
|
||||
39
coin/provisioning/common/macos/gcc_homebrew.sh
Executable file
39
coin/provisioning/common/macos/gcc_homebrew.sh
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#############################################################################
|
||||
##
|
||||
## Copyright (C) 2018 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$
|
||||
##
|
||||
#############################################################################
|
||||
|
||||
set -ex
|
||||
|
||||
brew install gcc@9
|
||||
|
||||
80
coin/provisioning/common/macos/vcpkg.sh
Executable file
80
coin/provisioning/common/macos/vcpkg.sh
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/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$
|
||||
##
|
||||
#############################################################################
|
||||
|
||||
# This script installs VcPkg. It is used to provide third-party libraries when cross-compiling
|
||||
# for example for iOS.
|
||||
|
||||
set -ex
|
||||
|
||||
# shellcheck source=../unix/SetEnvVar.sh
|
||||
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
|
||||
source "${BASH_SOURCE%/*}/../shared/vcpkg_version.txt"
|
||||
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
|
||||
|
||||
|
||||
cachedUrl="http://ci-files01-hki.intra.qt.io/input/vcpkg/$vcpkg_version.tar.gz"
|
||||
officialUrl="https://codeload.github.com/tronical/vcpkg/tar.gz/$vcpkg_version"
|
||||
targetFile="vcpkg.tar.gz"
|
||||
targetFolder="$HOME/vcpkg"
|
||||
expectedSha1="7fc639c2b326aca910bf14424380bfce467a0c2a"
|
||||
|
||||
DownloadURL "$cachedUrl" "$officialUrl" "$expectedSha1" "$targetFile"
|
||||
|
||||
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
|
||||
|
||||
# vcpkg needs the command line tools headers, otherwise it fails to bootstrap.
|
||||
previouslySelectedXcodeBundle="$(xcode-select -p)"
|
||||
sudo xcode-select --switch /Library/Developer/CommandLineTools
|
||||
|
||||
./bootstrap-vcpkg.sh
|
||||
|
||||
# Switch back.
|
||||
sudo xcode-select --switch "$previouslySelectedXcodeBundle"
|
||||
|
||||
./vcpkg install --triplet arm64-ios @qt-packages-ios.txt
|
||||
|
||||
rm -rf packages buildtrees downloads
|
||||
|
||||
echo "VCPKG = $vcpkg_version" >> ~/versions.txt
|
||||
|
||||
4
coin/provisioning/qtci-macos-10.14-x86_64/02-disable-ntp.sh
Executable file
4
coin/provisioning/qtci-macos-10.14-x86_64/02-disable-ntp.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck source=../common/unix/disable-ntp_macos.sh
|
||||
source "${BASH_SOURCE%/*}/../common/unix/disable-ntp_macos.sh"
|
||||
5
coin/provisioning/qtci-macos-10.14-x86_64/26-freetype.sh
Executable file
5
coin/provisioning/qtci-macos-10.14-x86_64/26-freetype.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
brew install freetype
|
||||
6
coin/provisioning/qtci-macos-10.14-x86_64/26-ninja.sh
Executable file
6
coin/provisioning/qtci-macos-10.14-x86_64/26-ninja.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
# Need ninja for CMake.
|
||||
brew install ninja
|
||||
5
coin/provisioning/qtci-macos-10.14-x86_64/26-pcre2.sh
Executable file
5
coin/provisioning/qtci-macos-10.14-x86_64/26-pcre2.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
brew install pcre2
|
||||
6
coin/provisioning/qtci-macos-10.14-x86_64/26-virtualenv.sh
Executable file
6
coin/provisioning/qtci-macos-10.14-x86_64/26-virtualenv.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/macos/virtualenv.sh"
|
||||
5
coin/provisioning/qtci-macos-10.14-x86_64/54-gcc_homebrew.sh
Executable file
5
coin/provisioning/qtci-macos-10.14-x86_64/54-gcc_homebrew.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
"$(dirname "$0")/../common/macos/gcc_homebrew.sh"
|
||||
5
coin/provisioning/qtci-macos-10.14-x86_64/56-vcpkg.sh
Executable file
5
coin/provisioning/qtci-macos-10.14-x86_64/56-vcpkg.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
"$(dirname "$0")/../common/macos/vcpkg.sh"
|
||||
7
coin/provisioning/qtci-macos-10.14-x86_64/90-python-modules.sh
Executable file
7
coin/provisioning/qtci-macos-10.14-x86_64/90-python-modules.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/unix/python_modules.sh"
|
||||
|
||||
Reference in New Issue
Block a user