Skip to content

Commit 43b07ba

Browse files
committed
Start building the 6.1 release on the CI
Also, allow building against all API levels higher than 24, though they will all use the same Swift SDK modules and libraries built against API 24.
1 parent 9b21246 commit 43b07ba

9 files changed

+161
-1019
lines changed

.github/workflows/sdks.yml

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
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)
@@ -31,7 +31,7 @@ jobs:
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

get-packages-and-swift-source.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ if tagExtract.numberOfMatches(in: SWIFT_TAG, range: tagRange) == 1 {
5353
}
5454

5555
if swiftBranch == "RELEASE" {
56-
repoTags["swift-argument-parser"] = "1.2.3"
57-
repoTags["swift-collections"] = "1.1.2"
5856
sdkDir = "swift-release-android-\(ANDROID_ARCH)-24-sdk"
5957
} else {
6058
sdkDir = "swift-\(swiftVersion == "" ? "trunk" : "devel")-android-\(ANDROID_ARCH)-\(swiftSnapshotDate)-24-sdk"

swift-android-ci-except-release.patch

Lines changed: 0 additions & 22 deletions
This file was deleted.

swift-android-ci-release.patch

Lines changed: 0 additions & 170 deletions
This file was deleted.

swift-android-ci.patch

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,16 @@ index 9d5a714b..3f8f8c1d 100644
3030
+ )
3131
+endif()
3232
endif()
33+
diff --git a/llbuild/unittests/CMakeLists.txt b/llbuild/unittests/CMakeLists.txt
34+
index 92a1ee38..52273afb 100644
35+
--- a/llbuild/unittests/CMakeLists.txt
36+
+++ b/llbuild/unittests/CMakeLists.txt
37+
@@ -6,4 +6,4 @@ function(add_llbuild_unittest test_dirname)
38+
add_subdirectory(CAPI)
39+
add_subdirectory(Core)
40+
add_subdirectory(BuildSystem)
41+
-add_subdirectory(Ninja)
42+
+#add_subdirectory(Ninja)
3343
diff --git a/sourcekit-lsp/Utilities/build-script-helper.py b/sourcekit-lsp/Utilities/build-script-helper.py
3444
index bd31bec..4469cab 100755
3545
--- a/sourcekit-lsp/Utilities/build-script-helper.py
@@ -86,6 +96,18 @@ diff --git a/swift-certificates/Sources/X509/Verifier/RFC5280/URIConstraints.swi
8696
#elseif canImport(Darwin)
8797
import Darwin
8898
#endif
99+
diff --git a/swiftpm/Utilities/bootstrap b/swiftpm/Utilities/bootstrap
100+
index 085056de..1ded1a90 100755
101+
--- a/swiftpm/Utilities/bootstrap
102+
+++ b/swiftpm/Utilities/bootstrap
103+
@@ -827,6 +827,7 @@ def get_swiftpm_flags(args):
104+
# Don't use GNU strerror_r on Android.
105+
if '-android' in args.build_target:
106+
build_flags.extend(["-Xswiftc", "-Xcc", "-Xswiftc", "-U_GNU_SOURCE"])
107+
+ build_flags.extend(["-Xlinker", "-landroid-spawn"])
108+
109+
cross_compile_hosts = args.cross_compile_hosts
110+
if cross_compile_hosts:
89111
diff --git a/yams/Sources/Yams/Representer.swift b/yams/Sources/Yams/Representer.swift
90112
index a749c52..b74ef8e 100644
91113
--- a/yams/Sources/Yams/Representer.swift

0 commit comments

Comments
 (0)