2121 id : version
2222 run : |
2323 if [ ${{ matrix.version }} = 'release' ]; then
24- LATEST_TOOLCHAIN_VERSION=$(curl -sL https://github.com/apple/swift/releases | grep -m1 swift-6.0 | cut -d- -f2)
24+ LATEST_TOOLCHAIN_VERSION=$(curl -sL https://github.com/apple/swift/releases | grep -m1 swift-6.1 | cut -d- -f2)
2525 SWIFT_TAG="swift-${LATEST_TOOLCHAIN_VERSION}-RELEASE"
2626 elif [ ${{ matrix.version }} = 'devel' ]; then
2727 LATEST_TOOLCHAIN_VERSION=$(curl -sL https://github.com/apple/swift/tags | grep -m1 swift-6.1-DEV | cut -d- -f8-10)
3131 SWIFT_TAG="swift-DEVELOPMENT-SNAPSHOT-${LATEST_TOOLCHAIN_VERSION}-a"
3232 fi
3333 echo "tag=$SWIFT_TAG" >> $GITHUB_OUTPUT
34- echo "key=$SWIFT_TAG-ndk-${NDK_VERSION}-testing -bundle" >> $GITHUB_OUTPUT
34+ echo "key=$SWIFT_TAG-ndk-${NDK_VERSION}-patch -bundle" >> $GITHUB_OUTPUT
3535 - name : Get cached SDK bundle
3636 id : cache-bundle
3737 uses : actions/cache/restore@v4
@@ -128,26 +128,18 @@ jobs:
128128
129129 git apply swift-android.patch swift-crypto.patch swift-system.patch
130130 git apply -C1 swift-android-ci.patch
131- if [ ${{ matrix.version }} = 'release' ]; then
132- git apply swift-android-ci-release.patch swift-android-foundation-release.patch
131+ if [ ${{ matrix.version }} != 'trunk' ]; then
133132 perl -pi -e 's%r26%ndk/27%' swift/stdlib/cmake/modules/AddSwiftStdlib.cmake
134133 LSP_BUILD="-p --sourcekit-lsp"
134+ git apply swift-android-testing-devel.patch
135135 else
136- git apply swift-android-ci-except-release.patch swift-android-foundation-except-release.patch
137- if [ ${{ matrix.version }} = 'devel' ]; then
138- perl -pi -e 's%r26%ndk/27%' swift/stdlib/cmake/modules/AddSwiftStdlib.cmake
139- LSP_BUILD="-p --sourcekit-lsp"
140- git apply swift-android-testing-devel.patch
141- else
142- git apply swift-android-testing-trunk.patch
143- fi
144- TESTING_BUILD="--swift-testing --install-swift-testing"
136+ git apply swift-android-trunk.patch
145137 fi
146138
147139 perl -pi -e 's%String\(cString: getpass%\"fake\" //%' swiftpm/Sources/PackageRegistryCommand/PackageRegistryCommand+Auth.swift
148140 VERSION="$(echo ${{ steps.version.outputs.tag }} | cut -f1,2 -d-)-${{ matrix.version }}"
149141
150- # e.g. swift-6.0. 1-release-android-24-sdk
142+ # e.g. swift-6.1-release-android-24-sdk
151143 SDK_DIR=$VERSION-android-${ANDROID_API_LEVEL}-sdk
152144 ROOT=android-${NDK_VERSION}-sysroot
153145 SYSROOT=$SDK_DIR/$ROOT
@@ -159,26 +151,19 @@ jobs:
159151 for arch in aarch64 x86_64 armv7; do
160152 SDK_NAME=$(ls | grep swift-${{ matrix.version }}-android-$arch)
161153 SDK=`pwd`/$SDK_NAME
162- if [ ${{ matrix.version }} = 'release' ]; then
163- perl -pi -e "s%/data/data/com.termux/files%$SDK%g" $SDK/usr/lib/pkgconfig/sqlite3.pc
164- elif [ ${{ matrix.version }} = 'trunk' ]; then
154+ if [ ${{ matrix.version }} = 'trunk' ]; then
165155 cp $SDK/usr/include/execinfo.h $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include
166156 fi
167157
168- ./swift/utils/build-script -RA --skip-build-cmark --build-llvm=0 --android --android-ndk $ANDROID_NDK_HOME --android-arch $arch --android-api-level $ANDROID_API_LEVEL --build-swift-tools=0 --native-swift-tools-path=${TOOLCHAIN}/bin --native-clang-tools-path=${TOOLCHAIN}/bin --cross-compile-hosts=android-$arch --cross-compile-deps-path=$SDK --skip-local-build --build-swift-static-stdlib --xctest --install-swift --install-libdispatch --install-foundation --install-xctest --install-destdir=$SDK --swift-install-components='compiler;clang-resource-dir-symlink;license;stdlib;sdk-overlay' --cross-compile-append-host-target-to-destdir=False -b --install-llbuild $LSP_BUILD $TESTING_BUILD
158+ ./swift/utils/build-script -RA --skip-build-cmark --build-llvm=0 --android --android-ndk $ANDROID_NDK_HOME --android-arch $arch --android-api-level $ANDROID_API_LEVEL --build-swift-tools=0 --native-swift-tools-path=${TOOLCHAIN}/bin --native-clang-tools-path=${TOOLCHAIN}/bin --cross-compile-hosts=android-$arch --cross-compile-deps-path=$SDK --skip-local-build --build-swift-static-stdlib --xctest --install-swift --install-libdispatch --install-foundation --install-xctest --install-destdir=$SDK --swift-install-components='compiler;clang-resource-dir-symlink;license;stdlib;sdk-overlay' --cross-compile-append-host-target-to-destdir=False -b --install-llbuild --swift-testing --install-swift-testing $LSP_BUILD
169159
170- if [ ${{ matrix.version }} != 'release' ]; then
171- rm $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/swift
172- fi
160+ rm $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/swift
173161
174162 pushd ${SDK_NAME}/usr
175163
176164 patchelf --set-rpath \$ORIGIN lib/swift/android/lib[dFXs]*.so
177165 # Remove executables and unused toolchain headers/libraries
178166 rm -r bin lib/libsqlite3.so lib/lib{curses,ncurses}.so lib/terminfo share/{tabset,terminfo}
179- if [ ${{ matrix.version }} = 'release' ]; then
180- rm -r lib/swift/pm
181- fi
182167 mv include/curl include/execinfo.h include/libxml2 include/spawn.h .
183168 rm -r include/*
184169 mv curl execinfo.h libxml2 spawn.h include/
@@ -237,24 +222,32 @@ jobs:
237222 {
238223 "schemaVersion": "4.0",
239224 "targetTriples": {
240- "aarch64-unknown-linux-android${ANDROID_API_LEVEL}": {
225+ EOF
226+
227+ for api in $(eval echo "{$ANDROID_API_LEVEL..35}"); do
228+ cat >> $BUNDLE_DIR/$SDK_DIR/swift-sdk.json << EOF
229+ "aarch64-unknown-linux-android$api": {
241230 "sdkRootPath": "${ROOT}",
242231 "swiftResourcesPath": "${ROOT}/usr/lib/swift",
243232 "swiftStaticResourcesPath": "${ROOT}/usr/lib/swift_static-aarch64",
244233 "toolsetPaths": ["swift-toolset.json"]
245234 },
246- "x86_64-unknown-linux-android${ANDROID_API_LEVEL} ": {
235+ "x86_64-unknown-linux-android$api ": {
247236 "sdkRootPath": "${ROOT}",
248237 "swiftResourcesPath": "${ROOT}/usr/lib/swift",
249238 "swiftStaticResourcesPath": "${ROOT}/usr/lib/swift_static-x86_64",
250239 "toolsetPaths": ["swift-toolset.json"]
251240 },
252- "armv7-unknown-linux-androideabi${ANDROID_API_LEVEL} ": {
241+ "armv7-unknown-linux-androideabi$api ": {
253242 "sdkRootPath": "${ROOT}",
254243 "swiftResourcesPath": "${ROOT}/usr/lib/swift",
255244 "swiftStaticResourcesPath": "${ROOT}/usr/lib/swift_static-armv7",
256245 "toolsetPaths": ["swift-toolset.json"]
257- }
246+ },
247+ EOF
248+ done
249+
250+ cat >> $BUNDLE_DIR/$SDK_DIR/swift-sdk.json << EOF
258251 }
259252 }
260253 EOF
@@ -302,9 +295,7 @@ jobs:
302295 ${TOOLCHAIN}/bin/swift sdk install ~/${{ steps.version.outputs.tag }}-android-*.artifactbundle.tar.gz
303296 ${TOOLCHAIN}/bin/swift sdk configure --show-configuration ${{ steps.version.outputs.tag }}-android-${ANDROID_API_LEVEL}-${BUNDLE_VERSION} armv7-unknown-linux-androideabi${ANDROID_API_LEVEL}
304297
305- if ${{ matrix.version != 'release' }}; then
306- echo "ANDROID_NDK_ROOT=" >> $GITHUB_ENV
307- fi
298+ echo "ANDROID_NDK_ROOT=" >> $GITHUB_ENV
308299
309300 SFLAGS="--swift-sdk aarch64-unknown-linux-android${ANDROID_API_LEVEL} ${FLAGS}"
310301 echo "SWIFTPM_AARCH_FLAGS=${SFLAGS}" >> $GITHUB_ENV
@@ -547,6 +538,6 @@ jobs:
547538 - name : Run tests on Android x86_64 emulator
548539 uses : reactivecircus/android-emulator-runner@v2
549540 with :
550- api-level : ${{ matrix.version == 'release' && '29' || env.ANDROID_API_LEVEL }}
541+ api-level : ${{ env.ANDROID_API_LEVEL }}
551542 arch : x86_64
552543 script : ~/test-toolchain.sh
0 commit comments