Files
qt5/coin/provisioning/common/macos/gcc_homebrew.sh
Alexandru Croitor 0a3a855774 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>
2019-12-17 20:45:05 +00:00

40 lines
1.6 KiB
Bash
Executable File

#!/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