During the toolchain build, when building the Swift standard library for
platforms other than macOS the `libclang_rt.a` needs to be copied out of the
host SDK. That wasn't happening for visionOS.
Resolves rdar://135023111.
Introduces the new DeclarationsArrayBuilder and adds it to the
EditorConsumer. Declaration info always includes a kind, offset, and
length, and includes a USR where applicable.
As the USR is already available for editor.open.interface type requests,
this doesn't compute any new information, it just exposes more of what's
there already.
These products are built with CMake. In incremental build environments,
these products don't detect compiler changes, so the artifacts aren't
rebuilt unless the source code of these projects are changed.
To workaround that, always clean them in build-script to ensure they are
rebuilt.
rdar://135021207
Bump the deployment target from macOS 10.13-aligned versions to macOS
13.0-aligned versions. This allows us to stop linking CoreFoundation
in the swift runtime, which was previously required for availability
checking. It also lets us align the deployment target on x86_64 with
arm64, which was 11.0. Finally, it is a prerequisite to being able to
build swift using the macOS 15 beta SDKs.
This change adds build support for swift-testing in the Wasm Swift SDK.
Unfortunately, we can't use the regular SwiftTesting build-script product
because Wasm build cannot use build-script's cross-compilation infrastructure
for now. So we build swift-testing in WasmSwiftSDK product and install it
to the SDK package.
It's not always convenient to pass preset substitution arguments on an interactive command-line. Sometimes one might also need to generate these vars automatically, outside of a `build-script` invocation and also store those vars in a file for later reuse.
This change adds a new optional `--preset-vars-file` customization point to `build-script`, which allows users to pass a a file with newline separated key-value pars for preset variables substitution in addition to passing those in a direct `build-script` invocation.
This updates the swift-collections dependency to 1.1.3, which includes
a CMake fix for the WebAssembly target. "main", "next", and "rebranch"
schemes are all updated.
This renames the `Build-*` phase associated with building swift-testing.
Rather than name it `Build-SwiftTesting` match the other functions and
name it `Build-Testing`.
The Android NDK is being extracted with an extra intermediate directory:
$BinaryCache\android-ndk-r26b\android-ndk-r26b
The Android build fails because it expects the NDK contents to live
immediately under the directory:
$BinaryCache\android-ndk-r26b
The extra android-ndk-r26b sub-dir comes from the NDK zip archive
itself, which we have no control over. To work-around, allow callers
of Extract-ZipFile to control whether or not it should create the
extraction sub-dir. Override the default behavior for NDK extraction
only.
In Build-FoundationMacros, use the build Swift SDK for the build case
and when cross-compiling, use the swift syntax build from the build
arch binary cache as opposed to the host arch binary cache or else the
architecture mismatch will happen.
Build the testing macros early along with the Foundation macros and then
build a copy for distribution as well. This brings testing macros in
line with the Foundation macros.
This is required so that we can use a custom pinned toolchain. The three
arguments required are:
- `PinnedBuild` (URL to toolchain)
- `PinnedSHA256` (SHA256 for installer)
- `PinnedVersion` (toolchain version)
Prior to this, we would error out as `PinnedVersion` would be unset and
could not be specified as it was not an argument.