Skip to content

Commit 95b60d1

Browse files
marcpruxshahmishalcmcgee1024justice-adams-applesookach
authored
Android SDK build scripts (#467)
* Add Android workflow * Build Android image (#1) * Build Android image * Checkout without ssh * Retry build if it fails * Swift 6.1 Release Dockerfiles (#456) * Change binutils-gold package dependency on Debian 12 to binutils (#457) * Update installed packages after nightly platform expansion (#458) * update nightly-6.1 dependencies * update nightly-main dependencies * fix ubuntu images * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Fedora 41 Dockerfile (#464) * Build Android image * Build Android image * Swift 6.1 Release Dockerfiles (#456) * Change binutils-gold package dependency on Debian 12 to binutils (#457) * Build Android image * Build Android image * Build Android image * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Android SDK build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Androd build * Swift Android build * Swift Android build * Swift Android build * Swift Android build --------- Co-authored-by: Mishal Shah <[email protected]> Co-authored-by: Chris McGee <[email protected]> Co-authored-by: Justice Adams <[email protected]> Co-authored-by: Andrew Sukach <[email protected]> * Swift Android build 6.2 (#2) * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Start splitting NDK out from the rest of the SDK * Start splitting NDK out from the rest of the SDK * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 * Swift Android build 6.2 (#3) * Swift Android build 6.2 * Swift Android build 6.2 * Add post-install script to SDK bundle * Add post-install script to SDK bundle * Add post-install script to SDK bundle * Add post-install script to SDK bundle * Build SDK in Docker container (#4) * Add static libraries to post-install script * Add post-install script to SDK bundle * Add post-install script to SDK bundle * Update submodules * Checkout patches repo instead of using a git submodule * Update libcurl to 8.13.0 * Remove resources that we no longer use * Update libcurl to 8.13.0 * Update libxml2 to 2.14.2 * Build libxml2, libcurl, and boringssl with support for Android 16kb page sizes * Add build-script --extra-cmake-options=-DCMAKE_EXTRA_LINK_FLAGS=-Wl,-z,max-page-size=16384 * Add 16KB page size linker flags to linker flags in swift-toolset.json * Add 16KB page size linker flags to linker flags in swift-toolset.json * Build with ndk-r28b * Revert to building with ndk-r27c * Use official endpoints for discovering latest Swift release/devel/trunk tags * Typo fix in version script * Cleanup for PR * Change BUILD_VERSION to BUILD_SCHEME and have it match release, swift-*-branch, or development * Update Android README * Update how patches are applied * Fix source directory for patch target * Harmonize timestamps in artifactbundle with the swift source tag date for build reproducibility * Simplify toolchain-vars.sh * Run the compiler validation suite for Android (#8) * Run the compiler validation suite for Android * Add --build-compiler option * Add --cross-compile-build-swift-tools=0 from swiftlang/swift#38441 * Build with --build-llvm=0 * Check out Yams for Swift 6.1.1 build * Add --llvm-ninja-targets-for-cross-compile-hosts=help * Install pre-requisites * Install build prerequisites * Only setup local toolchain if build-compiler is not 0 * Fix Yams version checkout * Quote arguments to build scripts * Permit empty host-toolchain argument in build.sh * Fix check for BUILD_COMPILER * Re-order Docker PATH to system clang is used before Swift toolchain clang * Use --host-test to skip attempt to test on connected device/emulator * Install clang in Dockerfile * Add --skip-test-linux flag to build * Remove more folders to free up space * Update patches * Add docker-specific CI variants that run the compiler validation tests * meaningless edit * Update pull_request.yml to stop the 6.1 release builds * Update pull_request.yml to really only build the full docker compiler with tests * Update README.md with meaningless edit to bump build * Update build.sh to skip testing XCTest for linux, as a handful of the linux tests fail for some reason * Update build.sh to disable building libTesting and for 16K memory pages, as both don't work yet * Update build.sh to skip testing Foundation for linux, which requires building SwiftPM from source first * Update build.sh to not build each arch in a separate build directory * Update Dockerfile to use clang 19 instead * Add self-hosted runner CI variant * Fix CI workflow syntax * Update CI runner config * Update CI runner config * Fix name of self-hosted CI runner * Re-order arch run sequence * Update CI for self-hosted runner * Build for self-hosted runner * Add swift-6.2-branch to self-hosted run matrix * Update build.sh to disable aarch64 temporarily, as we know it built fine * Update pull_request.yml to disable non-compiler builds, as they all work, and comment out self-hosted till we know armv7 works * Run compiler validation on self-hosted with increased timeout * Update build-docker to only build for armv7 * Update pull_request.yml to disable self-hosted builds temporarily * Update pull_request.yml to build the full compiler in github runners with the armv7 stdlib and tests * Update build-docker to build for aarch64 first * Update toolchain-vars.sh to use older trunk snapahot toolchain that didn't crash * Update toolchain-vars.sh to only download the latest release compiler if building the Swift compiler from source * Update build-docker to only build for armv7 again * Update toolchain-vars.sh to fix setting branch variable * Update build-docker to build for all three supported arches * Update pull_request.yml to try self-hosted runs again * Update build.sh to only install SDK components and remove linux stdlib * Tolerate missing linux folder when attempting to clean up unnecessary build artifacts * Fix extraCLIOptions in swift-toolset.json * gcpdw * Fix patch application * Update apply-patches.sh to remove unused changes * Update swift-android-testing-except-release.patch to add Testing fix * Update swift-android.patch to remove unneeded patches * Update build.sh to try and fix Testing and clean up the bundle more * Fix README.md --------- Co-authored-by: finagolfin <[email protected]> * Build compiler-validated bundles from latest branch commits, not older tags Also update patches, particularly to disable failing tests from the compiler validation suite * gcpd 'Update patches' * Update patches and build matrix * Disable compiler validated builds on self-hosted * Centralize cmake variable for 6.2 in patches, as done for trunk upstream * Update disabled tests * Try running Docker build on macOS host * Remove separate checks of libxml2, curl, and yams * Remove upstreamed 6.2 branch patches * Use command-line flags to work around CMake 3.30+ linker flag bug, rather than patching files * Create an Android CMake toolchain file instead to cross-compile Testing and add 16 KB page linker flag to 6.2 branch * Install the native host LLVM tools for full compiler builds * Extend `--cross-compile-build-swift-tools=False` to disable building and installing LLVM and the Testing macros for cross-compiled hosts, then enable building and using the Testing macros for the native host. * Don't copy any libraries from the NDK: link the NDK's clang resource directory in the post-install script instead * Wildcard the clang version link in the post-install script in order to accomodate NDK 27 and 28 * Switch generated shell header to use #!/usr/bin/env bash * SBOM and nits (#14) * Address nits * Eliminate unnecessaryt pushds and use run cmake install instead of ninja * Generate SBOM with SDK dependencies * Add example of command for building locally * Remove upstreamed patches and turn the last modifications into perl substitutions instead. * Remove self-hosted build on github CI * Remove android_build job from pull_request workflow * Add license headers to Android build scripts * Remove unnecessary .gitignore * Add license header to Dockerfile * Switch over to using explicit tags and branches when invoking build-docker/local Also, force the full Swift compiler to be built from source when building from a branch, since there are no existing toolchain builds of arbitrary commits that we can download. --------- Co-authored-by: Mishal Shah <[email protected]> Co-authored-by: Chris McGee <[email protected]> Co-authored-by: Justice Adams <[email protected]> Co-authored-by: Andrew Sukach <[email protected]> Co-authored-by: finagolfin <[email protected]>
1 parent 5750fff commit 95b60d1

File tree

9 files changed

+1485
-0
lines changed

9 files changed

+1485
-0
lines changed

swift-ci/sdks/android/Dockerfile

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# ===----------------------------------------------------------------------===
2+
#
3+
# Swift Android SDK: Docker-based build
4+
#
5+
# This source file is part of the Swift.org open source project
6+
#
7+
# Copyright (c) 2024 Apple Inc. and the Swift project authors
8+
# Licensed under Apache License v2.0 with Runtime Library Exception
9+
#
10+
# See https://swift.org/LICENSE.txt for license information
11+
# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
12+
#
13+
# ===----------------------------------------------------------------------===
14+
15+
FROM ubuntu:24.04
16+
17+
# Architecture to build on (empty means x86-64)
18+
ARG OS_ARCH_SUFFIX=
19+
20+
# the Swift toolchain URL to download
21+
ARG SWIFT_TOOLCHAIN_URL=
22+
23+
# ............................................................................
24+
25+
# Install development tools
26+
RUN apt-get -q update \
27+
&& DEBIAN_FRONTEND=noninteractive apt-get -q install -y \
28+
build-essential \
29+
clang-19 \
30+
cmake \
31+
ninja-build \
32+
python3 \
33+
golang \
34+
git \
35+
gnupg2 \
36+
libcurl4-openssl-dev \
37+
libedit-dev \
38+
libicu-dev \
39+
libncurses5-dev \
40+
libpython3-dev \
41+
libsqlite3-dev \
42+
libxml2-dev \
43+
rsync \
44+
uuid-dev \
45+
uuid-runtime \
46+
tzdata \
47+
curl \
48+
unzip \
49+
&& rm -rf /var/lib/apt-lists/*
50+
51+
# Install Swift
52+
ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069
53+
ARG SWIFT_PLATFORM=ubuntu
54+
ARG OS_MAJOR_VER=24
55+
ARG OS_MINOR_VER=04
56+
57+
ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
58+
SWIFT_PLATFORM=$SWIFT_PLATFORM \
59+
OS_MAJOR_VER=$OS_MAJOR_VER \
60+
OS_MINOR_VER=$OS_MINOR_VER \
61+
OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MINOR_VER
62+
63+
COPY scripts/install-swift.sh /scripts/install-swift.sh
64+
RUN chmod ugo+x /scripts/install-swift.sh
65+
RUN /scripts/install-swift.sh /usr/local/swift
66+
ENV PATH="/usr/lib/llvm-19/bin:/usr/local/swift/bin:${PATH}"
67+
68+
ARG ANDROID_NDK_VERSION=
69+
70+
ENV ANDROID_NDK_VERSION=$ANDROID_NDK_VERSION
71+
72+
COPY scripts/install-ndk.sh /scripts/install-ndk.sh
73+
RUN chmod ugo+x /scripts/install-ndk.sh
74+
RUN /scripts/install-ndk.sh
75+
ENV ANDROID_NDK_HOME="/usr/local/ndk/${ANDROID_NDK_VERSION}"
76+
77+
ENV SWIFT_VERSION=$SWIFT_VERSION \
78+
LIBXML2_VERSION=$LIBXML2_VERSION \
79+
CURL_VERSION=$CURL_VERSION \
80+
BORINGSSL_VERSION=$BORINGSSL_VERSION \
81+
ICU_VERSION=$ICU_VERSION \
82+
ZLIB_VERSION=$ZLIB_VERSION
83+
84+
ENV SWIFT_BUILD_DOCKER="1"
85+
86+
COPY scripts /scripts
87+
RUN chmod ugo+x /scripts/*
88+
89+
# Create a user
90+
RUN groupadd -g 998 build-user && \
91+
useradd -m -r -u 998 -g build-user build-user
92+
93+
USER build-user
94+
95+
WORKDIR /home/build-user
96+

swift-ci/sdks/android/README.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# Dockerfile-based build for Swift Android SDK
2+
3+
This is a Dockerfile-based build set-up for the Swift Android SDK.
4+
5+
The top-level `./build-docker` script will create a
6+
Docker container and install a host toolchain and the
7+
Android NDK, and then invoke `scripts/fetch-source.sh` which will
8+
fetch tagged sources for libxml2, curl, boringssl, and swift.
9+
10+
It can be run with:
11+
12+
```
13+
$ ./build-docker <version> <workdir>
14+
```
15+
16+
for example:
17+
18+
```
19+
$ ./build-docker tag:swift-6.2-RELEASE /tmp/android-sdk
20+
```
21+
22+
This will create an Ubuntu 24.04 container with the necessary dependencies
23+
to build the Android SDK, including a Swift host toolchain and the
24+
Android NDK that will be used for cross-compilation.
25+
26+
The `version` argument can be a branch scheme, like "scheme:release/6.2", or a
27+
tag, like "tag:swift-6.2-DEVELOPMENT-SNAPSHOT-2025-09-04-a".
28+
29+
> [!WARNING]
30+
> The workdir argument must not be located in a git repository (e.g., it cannot be the
31+
> current directory)
32+
33+
## Running
34+
35+
The top-level `./build-docker` script installs a host toolchain and the
36+
Android NDK, and then invokes `scripts/fetch-source.sh` which will
37+
fetch tagged sources for libxml2, curl, boringssl, and swift.
38+
39+
It then applies some perl substitutions and invokes `scripts/build.sh`,
40+
which will build the sources for each of the specified
41+
architectures and then combines the SDKs into a single
42+
artifactbundle with targetTriples for each of the supported
43+
architectures (`aarch64`, `x86_64`, `aarmv7`)
44+
and Android API levels (28-35).
45+
46+
## Specifying Architectures
47+
48+
By default, all the supported Android architectures
49+
will be built, but this can be reduced in order to speed
50+
up the build. This can be useful, e.g., as part of a CI that
51+
validates a pull request, as building a single architecture
52+
takes around 30 minutes on a standard ubuntu-24.04 GitHub runner,
53+
whereas building for all the architectures takes over an hour.
54+
55+
To build an artifactbundle for just the `x86_64` architecture, run:
56+
57+
```
58+
TARGET_ARCHS=x86_64 ./build-docker scheme:main /tmp/android-sdk
59+
```
60+
61+
## Building the Swift compiler from source and running the validation suite
62+
63+
All tags that are specified will download the official release or snapshot
64+
toolchain and build only the bundle by default, while building from a branch
65+
scheme always builds the full Swift compiler from the latest commit in that
66+
branch. If you want to build the Swift compiler from source for a tag also and
67+
run the compiler validation suite, specify the `BUILD_COMPILER` variable:
68+
69+
```
70+
BUILD_COMPILER=yes ./build-docker tag:swift-DEVELOPMENT-SNAPSHOT-2025-09-04-a /tmp/android-sdk
71+
```
72+
73+
## Building locally
74+
75+
Instead of building within a Docker container, the script can also
76+
perform the build locally on an Ubuntu 24.04 machine with all the
77+
build prerequisites already installed. This will generate
78+
the same artifacts in approximately half the time, and
79+
may be suitable to an already containerized envrionment (such as
80+
a GitHub runner). A local build can be run with the
81+
`build-local` script, such as:
82+
83+
```
84+
./build-local scheme:release/6.2 /tmp/android-sdk
85+
```

swift-ci/sdks/android/build-docker

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#!/bin/bash -e
2+
#
3+
# ===----------------------------------------------------------------------===
4+
#
5+
# Swift Android SDK: Docker Container Build Script
6+
#
7+
# This source file is part of the Swift.org open source project
8+
#
9+
# Copyright (c) 2025 Apple Inc. and the Swift project authors
10+
# Licensed under Apache License v2.0 with Runtime Library Exception
11+
#
12+
# See https://swift.org/LICENSE.txt for license information
13+
# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
14+
#
15+
# ===----------------------------------------------------------------------===
16+
17+
# default architectures to build for
18+
TARGET_ARCHS=${TARGET_ARCHS:-aarch64,x86_64,armv7}
19+
20+
ANDROID_NDK_VERSION=android-ndk-r27d
21+
ANDROID_API=28
22+
23+
BASEPATH=$(dirname $(realpath $0))
24+
cd ${BASEPATH}
25+
26+
export SWIFT_VERSION=${1}
27+
# note that WORKDIR must not be under the current checkout or the patches will fail to apply
28+
WORKDIR=${2}
29+
if [[ "${WORKDIR}" == '' ]]; then
30+
echo "Usage: $(basename $0) <release/devel/trunk> <work directory>"
31+
exit 1
32+
fi
33+
mkdir -p ${WORKDIR}
34+
WORKDIR=$(realpath ${WORKDIR})
35+
36+
HOST_OS=ubuntu24.04
37+
source ./scripts/toolchain-vars.sh
38+
39+
# Check-out and patch the sources
40+
./scripts/fetch-source.sh --source-dir ${WORKDIR}/source
41+
42+
# This `git grep` invocation in a trunk test fails in our Docker for some
43+
# reason, so just turn it into a plain `grep` again.
44+
perl -pi -e 's:"git",:#:' ${WORKDIR}/source/swift-project/swift/test/Misc/verify-swift-feature-testing.test-sh
45+
46+
# Work around swiftlang/swift-driver#1822 for now
47+
perl -pi -g -we "s#(call rm ... \".\{LIBDISPATCH_BUILD_DIR\}\"\n(\s+)fi\n)#\1\2if [[ -d \"\\\${ANDROID_NDK}\" ]]; then call ln -sf \"\\\${SWIFT_BUILD_PATH}/lib/swift\" \"\\\${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib\"; fi#" ${WORKDIR}/source/swift-project/swift/utils/build-script-impl
48+
49+
# disable backtrace() for Android (needs either API33+ or libandroid-execinfo, or to manually add in backtrace backport)
50+
perl -pi -e 's;os\(Android\);os\(AndroidDISABLED\);g' ${WORKDIR}/source/swift-project/swift-testing/Sources/Testing/SourceAttribution/Backtrace.swift
51+
52+
mkdir -p ${WORKDIR}/products
53+
chmod ugo+rwx ${WORKDIR}/products
54+
55+
if [[ "$DOCKER" == "" ]]; then
56+
DOCKER=docker
57+
fi
58+
59+
CONTAINER_NAME="swift-android"
60+
61+
# Build the Docker image
62+
$DOCKER build --build-arg OS_ARCH_SUFFIX=$OS_ARCH_SUFFIX --build-arg SWIFT_TOOLCHAIN_URL=$SWIFT_TOOLCHAIN_URL --build-arg ANDROID_NDK_VERSION=$ANDROID_NDK_VERSION -t ${CONTAINER_NAME} .
63+
64+
$DOCKER run -i --rm \
65+
-v ${WORKDIR}/source:/source \
66+
-v ${WORKDIR}/products:/products:rw \
67+
${CONTAINER_NAME} \
68+
/scripts/build.sh \
69+
--source-dir "/source" \
70+
--products-dir "/products" \
71+
--host-toolchain "/usr/local/swift" \
72+
--build-compiler "${BUILD_COMPILER}" \
73+
--android-api "${ANDROID_API}" \
74+
--ndk-home "/usr/local/ndk/${ANDROID_NDK_VERSION}" \
75+
--archs "${TARGET_ARCHS}"

swift-ci/sdks/android/build-local

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
#!/bin/bash -e
2+
#
3+
# ===----------------------------------------------------------------------===
4+
#
5+
# Swift Android SDK: Local (non-Docker-containerized) Build Script
6+
#
7+
# This source file is part of the Swift.org open source project
8+
#
9+
# Copyright (c) 2025 Apple Inc. and the Swift project authors
10+
# Licensed under Apache License v2.0 with Runtime Library Exception
11+
#
12+
# See https://swift.org/LICENSE.txt for license information
13+
# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
14+
#
15+
# ===----------------------------------------------------------------------===
16+
17+
# default architectures to build for
18+
TARGET_ARCHS=${TARGET_ARCHS:-aarch64,x86_64,armv7}
19+
20+
ANDROID_NDK_VERSION=android-ndk-r27d
21+
ANDROID_API=28
22+
23+
BASEPATH=$(dirname $(realpath $0))
24+
cd ${BASEPATH}
25+
26+
export SWIFT_VERSION=${1}
27+
# note that WORKDIR must not be under the current checkout or the patches will fail to apply
28+
WORKDIR=${2}
29+
if [[ "${WORKDIR}" == '' ]]; then
30+
echo "Usage: $(basename $0) <release/devel/trunk> <work directory>"
31+
exit 1
32+
fi
33+
mkdir -p ${WORKDIR}
34+
WORKDIR=$(realpath ${WORKDIR})
35+
36+
HOST_OS=ubuntu$(lsb_release -sr)
37+
source ./scripts/toolchain-vars.sh
38+
39+
SWIFT_ROOT=${WORKDIR}/host-toolchain
40+
HOST_TOOLCHAIN=$SWIFT_ROOT/$SWIFT_BASE/usr
41+
if [[ ! -d "$HOST_TOOLCHAIN" ]]; then
42+
./scripts/install-swift.sh ${HOST_TOOLCHAIN}
43+
fi
44+
45+
$HOST_TOOLCHAIN/bin/swift --version
46+
47+
# ensure the correct Swift is first in the PATH
48+
export PATH=$HOST_TOOLCHAIN/bin:$PATH
49+
50+
export ANDROID_NDK_HOME=${WORKDIR}/ndk/${ANDROID_NDK_VERSION}
51+
52+
if [[ ! -d ${ANDROID_NDK_HOME} ]]; then
53+
mkdir -p $(dirname ${ANDROID_NDK_HOME})
54+
pushd $(dirname ${ANDROID_NDK_HOME})
55+
NDKFILE=$(basename $ANDROID_NDK_HOME)-linux.zip
56+
wget -q https://dl.google.com/android/repository/${NDKFILE}
57+
unzip -q ${NDKFILE}
58+
popd
59+
fi
60+
61+
62+
# Check-out and patch the sources
63+
./scripts/fetch-source.sh --source-dir ${WORKDIR}/source
64+
# This `git grep` invocation in a trunk test fails in our Docker for some
65+
# reason, so just turn it into a plain `grep` again.
66+
perl -pi -e 's:"git",:#:' ${WORKDIR}/source/swift-project/swift/test/Misc/verify-swift-feature-testing.test-sh
67+
68+
# Work around swiftlang/swift-driver#1822 for now
69+
perl -pi -g -we "s#(call rm ... \".\{LIBDISPATCH_BUILD_DIR\}\"\n(\s+)fi\n)#\1\2if [[ -d \"\\\${ANDROID_NDK}\" ]]; then call ln -sf \"\\\${SWIFT_BUILD_PATH}/lib/swift\" \"\\\${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib\"; fi#" ${WORKDIR}/source/swift-project/swift/utils/build-script-impl
70+
71+
# disable backtrace() for Android (needs either API33+ or libandroid-execinfo, or to manually add in backtrace backport)
72+
perl -pi -e 's;os\(Android\);os\(AndroidDISABLED\);g' ${WORKDIR}/source/swift-project/swift-testing/Sources/Testing/SourceAttribution/Backtrace.swift
73+
74+
mkdir -p ${WORKDIR}/products
75+
76+
./scripts/build.sh \
77+
--source-dir "${WORKDIR}/source" \
78+
--products-dir "${WORKDIR}/products" \
79+
--build-dir "${WORKDIR}/build" \
80+
--build-compiler "${BUILD_COMPILER}" \
81+
--host-toolchain "${HOST_TOOLCHAIN}" \
82+
--android-api "${ANDROID_API}" \
83+
--ndk-home "${ANDROID_NDK_HOME}" \
84+
--archs "${TARGET_ARCHS}"

0 commit comments

Comments
 (0)