macos: Bump to xcode 11.3.1 and 10.15 SDK
This gets us a newer SDK with c++17 support and retains 10.12 back-compat. Co-authored-by: Carl Dong <contact@carldong.me>
This commit is contained in:
parent
a53d5ea8e9
commit
cc934c2b1d
|
@ -24,7 +24,7 @@ remotes:
|
||||||
- "url": "https://github.com/bitcoin/bitcoin.git"
|
- "url": "https://github.com/bitcoin/bitcoin.git"
|
||||||
"dir": "bitcoin"
|
"dir": "bitcoin"
|
||||||
files:
|
files:
|
||||||
- "Xcode-10.2.1-10E1001-extracted-SDK-with-libcxx-headers.tar.gz"
|
- "Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz"
|
||||||
script: |
|
script: |
|
||||||
WRAP_DIR=$HOME/wrapped
|
WRAP_DIR=$HOME/wrapped
|
||||||
HOSTS="x86_64-apple-darwin16"
|
HOSTS="x86_64-apple-darwin16"
|
||||||
|
@ -80,7 +80,7 @@ script: |
|
||||||
BASEPREFIX=`pwd`/depends
|
BASEPREFIX=`pwd`/depends
|
||||||
|
|
||||||
mkdir -p ${BASEPREFIX}/SDKs
|
mkdir -p ${BASEPREFIX}/SDKs
|
||||||
tar -C ${BASEPREFIX}/SDKs -xf ${BUILD_DIR}/Xcode-10.2.1-10E1001-extracted-SDK-with-libcxx-headers.tar.gz
|
tar -C ${BASEPREFIX}/SDKs -xf ${BUILD_DIR}/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
|
||||||
|
|
||||||
# Build dependencies for each host
|
# Build dependencies for each host
|
||||||
for i in $HOSTS; do
|
for i in $HOSTS; do
|
||||||
|
|
|
@ -17,9 +17,9 @@ When complete, it will have produced `Bitcoin-Qt.dmg`.
|
||||||
### Step 1: Obtaining `Xcode.app`
|
### Step 1: Obtaining `Xcode.app`
|
||||||
|
|
||||||
Our current macOS SDK
|
Our current macOS SDK
|
||||||
(`Xcode-10.2.1-10E1001-extracted-SDK-with-libcxx-headers.tar.gz`) can be
|
(`Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz`) can be
|
||||||
extracted from
|
extracted from
|
||||||
[Xcode_10.2.1.xip](https://download.developer.apple.com/Developer_Tools/Xcode_10.2.1/Xcode_10.2.1.xip).
|
[Xcode_11.3.1.xip](https://download.developer.apple.com/Developer_Tools/Xcode_11.3.1/Xcode_11.3.1.xip).
|
||||||
An Apple ID is needed to download this.
|
An Apple ID is needed to download this.
|
||||||
|
|
||||||
After Xcode version 7.x, Apple started shipping the `Xcode.app` in a `.xip`
|
After Xcode version 7.x, Apple started shipping the `Xcode.app` in a `.xip`
|
||||||
|
@ -31,25 +31,25 @@ approach (tested on Debian Buster) is outlined below:
|
||||||
apt install cpio
|
apt install cpio
|
||||||
git clone https://github.com/bitcoin-core/apple-sdk-tools.git
|
git clone https://github.com/bitcoin-core/apple-sdk-tools.git
|
||||||
|
|
||||||
# Unpack Xcode_10.2.1.xip and place the resulting Xcode.app in your current
|
# Unpack Xcode_11.3.1.xip and place the resulting Xcode.app in your current
|
||||||
# working directory
|
# working directory
|
||||||
python3 apple-sdk-tools/extract_xcode.py -f Xcode_10.2.1.xip | cpio -d -i
|
python3 apple-sdk-tools/extract_xcode.py -f Xcode_11.3.1.xip | cpio -d -i
|
||||||
```
|
```
|
||||||
|
|
||||||
On macOS the process is more straightforward:
|
On macOS the process is more straightforward:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
xip -x Xcode_10.2.1.xip
|
xip -x Xcode_11.3.1.xip
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 2: Generating `Xcode-10.2.1-10E1001-extracted-SDK-with-libcxx-headers.tar.gz` from `Xcode.app`
|
### Step 2: Generating `Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz` from `Xcode.app`
|
||||||
|
|
||||||
To generate `Xcode-10.2.1-10E1001-extracted-SDK-with-libcxx-headers.tar.gz`, run
|
To generate `Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz`, run
|
||||||
the script [`gen-sdk`](./gen-sdk) with the path to `Xcode.app` (extracted in the
|
the script [`gen-sdk`](./gen-sdk) with the path to `Xcode.app` (extracted in the
|
||||||
previous stage) as the first argument.
|
previous stage) as the first argument.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Generate a Xcode-10.2.1-10E1001-extracted-SDK-with-libcxx-headers.tar.gz from
|
# Generate a Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz from
|
||||||
# the supplied Xcode.app
|
# the supplied Xcode.app
|
||||||
./contrib/macdeploy/gen-sdk '/path/to/Xcode.app'
|
./contrib/macdeploy/gen-sdk '/path/to/Xcode.app'
|
||||||
```
|
```
|
||||||
|
@ -80,7 +80,7 @@ and its `libLTO.so` rather than those from `llvmgcc`, as it was originally done
|
||||||
|
|
||||||
To complicate things further, all builds must target an Apple SDK. These SDKs are free to
|
To complicate things further, all builds must target an Apple SDK. These SDKs are free to
|
||||||
download, but not redistributable. To obtain it, register for an Apple Developer Account,
|
download, but not redistributable. To obtain it, register for an Apple Developer Account,
|
||||||
then download [Xcode_10.2.1](https://download.developer.apple.com/Developer_Tools/Xcode_10.2.1/Xcode_10.2.1.xip).
|
then download [Xcode_11.3.1](https://download.developer.apple.com/Developer_Tools/Xcode_11.3.1/Xcode_11.3.1.xip).
|
||||||
|
|
||||||
This file is many gigabytes in size, but most (but not all) of what we need is
|
This file is many gigabytes in size, but most (but not all) of what we need is
|
||||||
contained only in a single directory:
|
contained only in a single directory:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
OSX_MIN_VERSION=10.12
|
OSX_MIN_VERSION=10.12
|
||||||
OSX_SDK_VERSION=10.14.4
|
OSX_SDK_VERSION=10.15.1
|
||||||
XCODE_VERSION=10.2.1
|
XCODE_VERSION=11.3.1
|
||||||
XCODE_BUILD_ID=10E1001
|
XCODE_BUILD_ID=11C505
|
||||||
OSX_SDK=$(SDK_PATH)/Xcode-$(XCODE_VERSION)-$(XCODE_BUILD_ID)-extracted-SDK-with-libcxx-headers
|
OSX_SDK=$(SDK_PATH)/Xcode-$(XCODE_VERSION)-$(XCODE_BUILD_ID)-extracted-SDK-with-libcxx-headers
|
||||||
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK)
|
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK)
|
||||||
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -stdlib=libc++
|
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -stdlib=libc++
|
||||||
|
|
Loading…
Reference in New Issue