mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 11:32:46 +01:00
merge bitcoin#28622: use macOS 14 SDK (Xcode 15.0)
continuation of 9e80893a3
from dash#6150
This commit is contained in:
parent
02eb73513e
commit
7b0a1f2256
@ -42,8 +42,8 @@ builder-image:
|
|||||||
image: $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG
|
image: $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_SLUG
|
||||||
variables:
|
variables:
|
||||||
SDK_URL: https://bitcoincore.org/depends-sources/sdks
|
SDK_URL: https://bitcoincore.org/depends-sources/sdks
|
||||||
XCODE_VERSION: "12.2"
|
XCODE_VERSION: "15.0"
|
||||||
XCODE_BUILD_ID: 12B45b
|
XCODE_BUILD_ID: 15A240d
|
||||||
before_script:
|
before_script:
|
||||||
- echo HOST=$HOST
|
- echo HOST=$HOST
|
||||||
- |
|
- |
|
||||||
|
@ -9,8 +9,8 @@ export LC_ALL=C.UTF-8
|
|||||||
export CONTAINER_NAME=ci_macos_cross
|
export CONTAINER_NAME=ci_macos_cross
|
||||||
export HOST=x86_64-apple-darwin
|
export HOST=x86_64-apple-darwin
|
||||||
export PACKAGES="cmake libz-dev python3-setuptools xorriso"
|
export PACKAGES="cmake libz-dev python3-setuptools xorriso"
|
||||||
export XCODE_VERSION=12.2
|
export XCODE_VERSION=15.0
|
||||||
export XCODE_BUILD_ID=12B45b
|
export XCODE_BUILD_ID=15A240d
|
||||||
export RUN_UNIT_TESTS=false
|
export RUN_UNIT_TESTS=false
|
||||||
export RUN_FUNCTIONAL_TESTS=false
|
export RUN_FUNCTIONAL_TESTS=false
|
||||||
export GOAL="all deploy"
|
export GOAL="all deploy"
|
||||||
|
@ -9,8 +9,8 @@ if [[ ! -d "${WORKSPACE_PATH}" || ! "${WORKSPACE_PATH}" = /* || ! -f "${WORKSPAC
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
XCODE_VERSION="12.2"
|
XCODE_VERSION="15.0"
|
||||||
XCODE_RELEASE="12B45b"
|
XCODE_RELEASE="15A240d"
|
||||||
XCODE_ARCHIVE="Xcode-${XCODE_VERSION}-${XCODE_RELEASE}-extracted-SDK-with-libcxx-headers"
|
XCODE_ARCHIVE="Xcode-${XCODE_VERSION}-${XCODE_RELEASE}-extracted-SDK-with-libcxx-headers"
|
||||||
XCODE_SOURCE="${XCODE_SOURCE:-https://bitcoincore.org/depends-sources/sdks}"
|
XCODE_SOURCE="${XCODE_SOURCE:-https://bitcoincore.org/depends-sources/sdks}"
|
||||||
|
|
||||||
|
@ -247,7 +247,7 @@ def check_MACHO_min_os(binary) -> bool:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def check_MACHO_sdk(binary) -> bool:
|
def check_MACHO_sdk(binary) -> bool:
|
||||||
if binary.build_version.sdk == [11, 0, 0]:
|
if binary.build_version.sdk == [14, 0, 0]:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -59,5 +59,5 @@ RUN mkdir base_cache sources SDKs
|
|||||||
WORKDIR /dash
|
WORKDIR /dash
|
||||||
|
|
||||||
RUN mkdir -p depends/SDKs && \
|
RUN mkdir -p depends/SDKs && \
|
||||||
curl -L https://bitcoincore.org/depends-sources/sdks/Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz | tar -xz -C depends/SDKs
|
curl -L https://bitcoincore.org/depends-sources/sdks/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz | tar -xz -C depends/SDKs
|
||||||
|
|
||||||
|
@ -14,51 +14,45 @@ When complete, it will have produced `Dash-Qt.dmg`.
|
|||||||
|
|
||||||
A free Apple Developer Account is required to proceed.
|
A free Apple Developer Account is required to proceed.
|
||||||
|
|
||||||
Our current macOS SDK
|
Our macOS SDK can be extracted from
|
||||||
(`Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz`)
|
[Xcode_15.xip](https://download.developer.apple.com/Developer_Tools/Xcode_15/Xcode_15.xip).
|
||||||
can be extracted from
|
|
||||||
[Xcode_12.2.xip](https://download.developer.apple.com/Developer_Tools/Xcode_12.2/Xcode_12.2.xip).
|
|
||||||
|
|
||||||
Alternatively, after logging in to your account go to 'Downloads', then 'More'
|
Alternatively, after logging in to your account go to 'Downloads', then 'More'
|
||||||
and search for [`Xcode_12.2`](https://developer.apple.com/download/all/?q=Xcode%2012.2).
|
and search for [`Xcode 15`](https://developer.apple.com/download/all/?q=Xcode%2015).
|
||||||
|
|
||||||
An Apple ID and cookies enabled for the hostname are needed to download this.
|
An Apple ID and cookies enabled for the hostname are needed to download this.
|
||||||
|
|
||||||
The `sha256sum` of the downloaded XIP archive should be `28d352f8c14a43d9b8a082ac6338dc173cb153f964c6e8fb6ba389e5be528bd0`.
|
The `sha256sum` of the downloaded XIP archive should be `4daaed2ef2253c9661779fa40bfff50655dc7ec45801aba5a39653e7bcdde48e`.
|
||||||
|
|
||||||
After Xcode version 7.x, Apple started shipping the `Xcode.app` in a `.xip`
|
To extract the `.xip` on Linux:
|
||||||
archive. This makes the SDK less-trivial to extract on non-macOS machines. One
|
|
||||||
approach (tested on Debian Buster) is outlined below:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Install/clone tools needed for extracting Xcode.app
|
# Install/clone tools needed for extracting Xcode.app
|
||||||
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_12.2.xip and place the resulting Xcode.app in your current
|
# Unpack the .xip and place the resulting Xcode.app in your current
|
||||||
# working directory
|
# working directory
|
||||||
python3 apple-sdk-tools/extract_xcode.py -f Xcode_12.2.xip | cpio -d -i
|
python3 apple-sdk-tools/extract_xcode.py -f Xcode_15.xip | cpio -d -i
|
||||||
```
|
```
|
||||||
|
|
||||||
On macOS the process is more straightforward:
|
On macOS:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
xip -x Xcode_12.2.xip
|
xip -x Xcode_15.xip
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 2: Generating `Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz` from `Xcode.app`
|
### Step 2: Generating the SDK tarball from `Xcode.app`
|
||||||
|
|
||||||
To generate `Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz`, run
|
To generate the SDK, run the script [`gen-sdk`](./gen-sdk) with the
|
||||||
the script [`gen-sdk`](./gen-sdk) with the path to `Xcode.app` (extracted in 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-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz from
|
|
||||||
# the supplied Xcode.app
|
|
||||||
./contrib/macdeploy/gen-sdk '/path/to/Xcode.app'
|
./contrib/macdeploy/gen-sdk '/path/to/Xcode.app'
|
||||||
```
|
```
|
||||||
|
|
||||||
The `sha256sum` of the generated TAR.GZ archive should be `df75d30ecafc429e905134333aeae56ac65fac67cb4182622398fd717df77619`.
|
The generated archive should be: `Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz`.
|
||||||
|
The `sha256sum` should be `c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d`.
|
||||||
|
|
||||||
## Deterministic macOS DMG Notes
|
## Deterministic macOS DMG Notes
|
||||||
|
|
||||||
|
@ -62,9 +62,6 @@ def run():
|
|||||||
|
|
||||||
out_name = "Xcode-{xcode_version}-{xcode_build_id}-extracted-SDK-with-libcxx-headers".format(xcode_version=xcode_version, xcode_build_id=xcode_build_id)
|
out_name = "Xcode-{xcode_version}-{xcode_build_id}-extracted-SDK-with-libcxx-headers".format(xcode_version=xcode_version, xcode_build_id=xcode_build_id)
|
||||||
|
|
||||||
xcode_libcxx_dir = xcode_app.joinpath("Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1")
|
|
||||||
assert xcode_libcxx_dir.is_dir()
|
|
||||||
|
|
||||||
if args.out_sdktgz:
|
if args.out_sdktgz:
|
||||||
out_sdktgz_path = pathlib.Path(args.out_sdktgz_path)
|
out_sdktgz_path = pathlib.Path(args.out_sdktgz_path)
|
||||||
else:
|
else:
|
||||||
@ -72,8 +69,8 @@ def run():
|
|||||||
out_sdktgz_path = pathlib.Path("./{}.tar.gz".format(out_name))
|
out_sdktgz_path = pathlib.Path("./{}.tar.gz".format(out_name))
|
||||||
|
|
||||||
def tarfp_add_with_base_change(tarfp, dir_to_add, alt_base_dir):
|
def tarfp_add_with_base_change(tarfp, dir_to_add, alt_base_dir):
|
||||||
"""Add all files in dir_to_add to tarfp, but prepent MEMBERPREFIX to the file's
|
"""Add all files in dir_to_add to tarfp, but prepent alt_base_dir to the files'
|
||||||
name
|
names
|
||||||
|
|
||||||
e.g. if the only file under /root/bazdir is /root/bazdir/qux, invoking:
|
e.g. if the only file under /root/bazdir is /root/bazdir/qux, invoking:
|
||||||
|
|
||||||
@ -107,8 +104,6 @@ def run():
|
|||||||
with tarfile.open(mode="w", fileobj=gzf, format=tarfile.GNU_FORMAT) as tarfp:
|
with tarfile.open(mode="w", fileobj=gzf, format=tarfile.GNU_FORMAT) as tarfp:
|
||||||
print("Adding MacOSX SDK {} files...".format(sdk_version))
|
print("Adding MacOSX SDK {} files...".format(sdk_version))
|
||||||
tarfp_add_with_base_change(tarfp, sdk_dir, out_name)
|
tarfp_add_with_base_change(tarfp, sdk_dir, out_name)
|
||||||
print("Adding libc++ headers...")
|
|
||||||
tarfp_add_with_base_change(tarfp, xcode_libcxx_dir, "{}/usr/include/c++/v1".format(out_name))
|
|
||||||
print("Done! Find the resulting gzipped tarball at:")
|
print("Done! Find the resulting gzipped tarball at:")
|
||||||
print(out_sdktgz_path.resolve())
|
print(out_sdktgz_path.resolve())
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
OSX_MIN_VERSION=11.0
|
OSX_MIN_VERSION=11.0
|
||||||
OSX_SDK_VERSION=11.0
|
OSX_SDK_VERSION=14.0
|
||||||
XCODE_VERSION=12.2
|
XCODE_VERSION=15.0
|
||||||
XCODE_BUILD_ID=12B45b
|
XCODE_BUILD_ID=15A240d
|
||||||
LD64_VERSION=711
|
LD64_VERSION=711
|
||||||
|
|
||||||
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
|
||||||
@ -71,6 +71,10 @@ $(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(
|
|||||||
#
|
#
|
||||||
# Adds the desired paths from the SDK
|
# Adds the desired paths from the SDK
|
||||||
#
|
#
|
||||||
|
# -platform_version
|
||||||
|
#
|
||||||
|
# Indicate to the linker the platform, the oldest supported version,
|
||||||
|
# and the SDK used.
|
||||||
|
|
||||||
darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
|
darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
|
||||||
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
|
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
|
||||||
@ -91,6 +95,7 @@ darwin_CXX=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
|
|||||||
|
|
||||||
darwin_CFLAGS=-pipe -std=$(C_STANDARD)
|
darwin_CFLAGS=-pipe -std=$(C_STANDARD)
|
||||||
darwin_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
|
darwin_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
|
||||||
|
darwin_LDFLAGS=-Wl,-platform_version,macos,$(OSX_MIN_VERSION),$(OSX_SDK_VERSION)
|
||||||
|
|
||||||
ifneq ($(LTO),)
|
ifneq ($(LTO),)
|
||||||
darwin_CFLAGS += -flto
|
darwin_CFLAGS += -flto
|
||||||
|
Loading…
Reference in New Issue
Block a user