@@ -10,7 +10,7 @@ emulator](https://github.com/finagolfin/swift-android-sdk/blob/main/.github/work
10
10
## Cross-compiling and testing Swift packages with the Android SDK bundle
11
11
12
12
To build with the Swift 6 SDK bundle, first download [ the official open-source
13
- Swift 6.0.2 toolchain for linux or macOS] ( https://swift.org/install )
13
+ Swift 6.0.3 toolchain for linux or macOS] ( https://swift.org/install )
14
14
(make sure to install the Swift dependencies linked there). Install the OSS
15
15
toolchain on macOS as detailed in [ the instructions for using the static linux
16
16
Musl SDK bundle at swift.org] ( https://www.swift.org/documentation/articles/static-linux-getting-started.html ) .
@@ -19,15 +19,15 @@ On linux, simply download the toolchain, unpack it, and add it to your `PATH`.
19
19
Next, install the Android SDK bundle by having the Swift toolchain directly
20
20
download it:
21
21
```
22
- swift sdk install https://github.com/finagolfin/swift-android-sdk/releases/download/6.0.2 /swift-6.0.2 -RELEASE-android-24-0.1.artifactbundle.tar.gz --checksum d75615eac3e614131133c7cc2076b0b8fb4327d89dce802c25cd53e75e1881f4
22
+ swift sdk install https://github.com/finagolfin/swift-android-sdk/releases/download/6.0.3 /swift-6.0.3 -RELEASE-android-24-0.1.artifactbundle.tar.gz --checksum d75615eac3e614131133c7cc2076b0b8fb4327d89dce802c25cd53e75e1881f4
23
23
```
24
24
or alternately, download the SDK bundle with your favorite downloader and install
25
25
it separately:
26
26
```
27
- > wget https://github.com/finagolfin/swift-android-sdk/releases/download/6.0.2 /swift-6.0.2 -RELEASE-android-24-0.1.artifactbundle.tar.gz
28
- > sha256sum swift-6.0.2 -RELEASE-android-24-0.1.artifactbundle.tar.gz
29
- d75615eac3e614131133c7cc2076b0b8fb4327d89dce802c25cd53e75e1881f4 swift-6.0.2 -RELEASE-android-24-0.1.artifactbundle.tar.gz
30
- > swift sdk install swift-6.0.2 -RELEASE-android-24-0.1.artifactbundle.tar.gz
27
+ > wget https://github.com/finagolfin/swift-android-sdk/releases/download/6.0.3 /swift-6.0.3 -RELEASE-android-24-0.1.artifactbundle.tar.gz
28
+ > sha256sum swift-6.0.3 -RELEASE-android-24-0.1.artifactbundle.tar.gz
29
+ d75615eac3e614131133c7cc2076b0b8fb4327d89dce802c25cd53e75e1881f4 swift-6.0.3 -RELEASE-android-24-0.1.artifactbundle.tar.gz
30
+ > swift sdk install swift-6.0.3 -RELEASE-android-24-0.1.artifactbundle.tar.gz
31
31
```
32
32
You can check if it was properly installed by running ` swift sdk list ` .
33
33
@@ -56,18 +56,18 @@ one depends on the example executables `color`, `generate-manual`, `math`,
56
56
point at test data in the repo: I've had success moving this data with the test
57
57
runner, after modifying the test source so it has the path to this test data in
58
58
the Android test environment. See the example of [ swift-crypto on the
59
- CI] ( https://github.com/finagolfin/swift-android-sdk/blob/6.0.2 /.github/workflows/sdks.yml#L505 ) .
59
+ CI] ( https://github.com/finagolfin/swift-android-sdk/blob/6.0.3 /.github/workflows/sdks.yml#L506 ) .
60
60
61
61
You can copy these executables and the Swift runtime libraries to [ an emulator
62
62
or a USB debugging-enabled device with adb] ( https://github.com/swiftlang/swift/blob/release/6.0/docs/Android.md#3-deploying-the-build-products-to-the-device ) ,
63
63
or put them on an Android device with [ a terminal emulator app like Termux] ( https://termux.dev/en/ ) .
64
64
I test aarch64 with Termux so I'll show how to run the test runner there, but
65
- the process is similar with adb, [ as can be seen on the CI] ( https://github.com/finagolfin/swift-android-sdk/blob/6.0.2 /.github/workflows/sdks.yml#L453 ) .
65
+ the process is similar with adb, [ as can be seen on the CI] ( https://github.com/finagolfin/swift-android-sdk/blob/6.0.3 /.github/workflows/sdks.yml#L454 ) .
66
66
67
67
Copy the test executables to the same directory as the Swift 6 runtime libraries:
68
68
```
69
69
cp .build/aarch64-unknown-linux-android24/debug/{swift-argument-parserPackageTests.xctest,color,generate-manual,math,repeat,roll} ..
70
- cp ~/.swiftpm/swift-sdks/swift-6.0.2 -RELEASE-android-24-0.1.artifactbundle/swift-6.0.2 -release-android-24-sdk/android-27c-sysroot/usr/lib/aarch64-linux-android/lib*.so ..
70
+ cp ~/.swiftpm/swift-sdks/swift-6.0.3 -RELEASE-android-24-0.1.artifactbundle/swift-6.0.3 -release-android-24-sdk/android-27c-sysroot/usr/lib/aarch64-linux-android/lib*.so ..
71
71
```
72
72
You can copy the test executables and Swift 6 runtime libraries to Termux using
73
73
scp from OpenSSH, run these commands in Termux on the Android device:
@@ -127,11 +127,11 @@ packagingOptions {
127
127
128
128
## Building an Android SDK from source
129
129
130
- Download the Swift 6.0.2 compiler as above and Android NDK 27c (only building
130
+ Download the Swift 6.0.3 compiler as above and Android NDK 27c (only building
131
131
the Android SDKs on linux works for now). Check out this repo and run
132
- ` SWIFT_TAG=swift-6.0.2 -RELEASE ANDROID_ARCH=aarch64 swift get-packages-and-swift-source.swift `
132
+ ` SWIFT_TAG=swift-6.0.3 -RELEASE ANDROID_ARCH=aarch64 swift get-packages-and-swift-source.swift `
133
133
to get some prebuilt Android libraries and the Swift source to build an AArch64
134
- SDK. If you pass in a different tag like ` swift-DEVELOPMENT-SNAPSHOT-2024-11-19 -a `
134
+ SDK. If you pass in a different tag like ` swift-DEVELOPMENT-SNAPSHOT-2025-01-05 -a `
135
135
for the latest Swift trunk snapshot and pass in the path to the corresponding
136
136
prebuilt Swift toolchain to ` build-script ` below, you can build a Swift trunk
137
137
SDK too, as seen on the CI.
@@ -151,8 +151,8 @@ substituted instead:
151
151
```
152
152
./swift/utils/build-script -RA --skip-build-cmark --build-llvm=0 --android
153
153
--android-ndk /home/finagolfin/android-ndk-r27c/ --android-arch aarch64 --android-api-level 24
154
- --build-swift-tools=0 --native-swift-tools-path=/home/finagolfin/swift-6.0.2 -RELEASE-ubuntu22.04/usr/bin/
155
- --native-clang-tools-path=/home/finagolfin/swift-6.0.2 -RELEASE-ubuntu22.04/usr/bin/
154
+ --build-swift-tools=0 --native-swift-tools-path=/home/finagolfin/swift-6.0.3 -RELEASE-ubuntu22.04/usr/bin/
155
+ --native-clang-tools-path=/home/finagolfin/swift-6.0.3 -RELEASE-ubuntu22.04/usr/bin/
156
156
--host-cc=/usr/bin/clang-13 --host-cxx=/usr/bin/clang++-13
157
157
--cross-compile-hosts=android-aarch64 --cross-compile-deps-path=/home/finagolfin/swift-release-android-aarch64-24-sdk
158
158
--skip-local-build --xctest --swift-install-components='clang-resource-dir-symlink;license;stdlib;sdk-overlay'
@@ -215,7 +215,7 @@ packages, by compiling against a more recent Android API that doesn't need the
215
215
` libandroid-spawn ` backport, and by cross-compiling libcurl/libxml2 and their
216
216
dependencies yourself or not using FoundationNetworking and FoundationXML.
217
217
218
- Finally, it gets [ the 6.0.2 source] ( https://github.com/swiftlang/swift/releases/tag/swift-6.0.2 -RELEASE )
218
+ Finally, it gets [ the 6.0.3 source] ( https://github.com/swiftlang/swift/releases/tag/swift-6.0.3 -RELEASE )
219
219
tarballs for ten Swift repos and renames them to ` llvm-project/ ` , ` swift/ ` ,
220
220
` swift-syntax ` , ` swift-experimental-string-processing ` , ` swift-corelibs-libdispatch ` ,
221
221
` swift-corelibs-foundation ` , ` swift-collections ` , ` swift-foundation ` ,
0 commit comments