Files
qt5/coin/provisioning/qtci-macos-10.12-x86_64/020-xcode.sh
Tony Sarajärvi b14198730d Remove command line tools from macOS 10.11 and 10.12
Qt should not require command line tools to be installed.
When they are installed, we can accidentally rely on
on the tools instead of sysroot.

Task-number: QTBUG-58325
Change-Id: I9ad942c6f67e4c1b7348258a9178ab497ee58800
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-03-15 13:21:40 +00:00

111 lines
3.8 KiB
Bash
Executable File

#!/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 Xcode
# Prerequisites: Have Xcode prefetched to local cache as xz compressed.
# This can be achieved by fetching Xcode_8.xip from Apple Store.
# Uncompress it with 'xar -xf Xcode_8.xip'
# Then get https://gist.githubusercontent.com/pudquick/ff412bcb29c9c1fa4b8d/raw/24b25538ea8df8d0634a2a6189aa581ccc6a5b4b/parse_pbzx2.py
# with which you can run 'python parse_pbzx2.py Content'.
# This will give you a file called "Content.part00.cpio.xz" that
# can be renamed to Xcode_8.xz for this script.
# shellcheck source=../common/try_catch.sh
source "${BASH_SOURCE%/*}/../common/try_catch.sh"
ExceptionDownloadUrl=100
ExceptionSHA1=101
ExceptionUnXZ=102
ExceptionCPIO=103
ExceptionDelete=104
ExceptionAcceptLicense=105
url=http://ci-files01-hki.ci.local/input/mac/macos_10.12_sierra/Xcode_8.2.1.xz
targetFile=/tmp/Xcode_8.2.1.xz
expectedSha1=a68e8a4446f77e781b1ce123125263862f2607a3
try
(
echo "Downloading Xcode from primary URL '$url'"
curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url" || throw $ExceptionDownloadUrl
echo "Checking SHA1 on $targetFile"
echo "$expectedSha1 *$targetFile" | shasum --check || throw $ExceptionSHA1
echo "Uncompressing '$targetFile'"
xz -d "$targetFile" || throw $ExceptionUnXZ
echo "Unarchiving '${targetFile%.*}'"
(cd /Applications/ && sudo cpio -dmiI "${targetFile%.*}") || throw $ExceptionCPIO
echo "Deleting '${targetFile%.*}'"
rm "${targetFile%.*}" || throw $ExceptionDelete
echo "Accept license"
sudo xcodebuild -license accept || throw $ExceptionAcceptLicense
echo "XCode = 8.2.1" >> ~/versions.txt
)
catch || {
case $ex_code in
$ExceptionDownloadUrl)
echo "Failed to download Xcode."
exit 1;
;;
$ExceptionSHA1)
echo "Failed to check SHA1."
exit 1;
;;
$ExceptionUnXZ)
echo "Failed to uncompress .xz"
exit 1;
;;
$ExceptionCPIO)
echo "Failed to unarchive .cpio."
exit 1;
;;
$ExceptionDelete)
echo "Failed to delete temporary file."
exit 1;
;;
$ExceptionAcceptLicense)
echo "Failed to accept license."
exit 1;
;;
esac
}