Skip to content

Commit f38f3e6

Browse files
committed
Swift Android build 6.2
1 parent bd3a0ea commit f38f3e6

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

.github/workflows/pull_request.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,10 @@ jobs:
145145
echo 'import Dispatch' >> Sources/DemoProject/DemoProject.swift
146146
echo 'import Android' >> Sources/DemoProject/DemoProject.swift
147147
- name: Test Demo Project on Android
148-
uses: skiptools/swift-android-action@v2
148+
uses: skiptools/swift-android-action@main
149149
with:
150150
# only test for the complete arch SDK build to speed up CI
151-
run-tests: ${{ matrix.arch == '' }}
151+
#run-tests: ${{ matrix.arch == '' }}
152152
package-path: ${{ runner.temp }}/DemoProject
153153
installed-sdk: ${{ steps.info.outputs.sdk-id }}
154154
installed-swift: ${{ steps.info.outputs.swift-root }}
@@ -159,7 +159,7 @@ jobs:
159159
repository: apple/swift-algorithms
160160
path: swift-algorithms
161161
- name: Test swift-algorithms
162-
uses: skiptools/swift-android-action@v2
162+
uses: skiptools/swift-android-action@main
163163
with:
164164
run-tests: ${{ matrix.arch == '' }}
165165
package-path: swift-algorithms

swift-ci/sdks/android/scripts/build.sh

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -500,14 +500,20 @@ if [ "${NDK_LOCATION}" = "external" ]; then
500500
# need to manually copy over swiftrt.o or else:
501501
# error: link command failed with exit code 1 (use -v to see invocation)
502502
# clang: error: no such file or directory: '${HOME}/.swiftpm/swift-sdks/swift-6.2-DEVELOPMENT-SNAPSHOT-2025-04-24-a_android-0.1.artifactbundle/swift-android/ndk-sysroot/usr/lib/swift/android/x86_64/swiftrt.o'
503-
SWIFTRT=${swift_res_root}/usr/lib/swift-x86_64/android/x86_64/swiftrt.o
504-
505503
# see: https://github.com/swiftlang/swift-driver/pull/1822#issuecomment-2762811807
506-
mkdir -p ${ndk_sysroot}/usr/lib/swift/android/x86_64
507-
cp -v ${SWIFTRT} ${ndk_sysroot}/usr/lib/swift/android/x86_64/swiftrt.o
504+
if [ "true" = "true" ]; then
505+
SWIFTRT=android/x86_64/swiftrt.o
506+
507+
mkdir -p ${ndk_sysroot}/usr/lib/swift/android/x86_64
508+
ln -srv ${swift_res_root}/usr/lib/swift-x86_64/${SWIFTRT} ${ndk_sysroot}/usr/lib/swift/${SWIFTRT}
508509

509-
mkdir -p ${ndk_sysroot}/usr/lib/swift_static/android/x86_64
510-
cp -v ${SWIFTRT} ${ndk_sysroot}/usr/lib/swift_static/android/x86_64/swiftrt.o
510+
mkdir -p ${ndk_sysroot}/usr/lib/swift_static/android/x86_64
511+
#ln -srv ${swift_res_root}/usr/lib/swift_static-x86_64/${SWIFTRT} ${ndk_sysroot}/usr/lib/swift_static/${SWIFTRT}
512+
else
513+
# try brute copying swiftrt.o to EVERY directory to see if it gets picked up somehow
514+
echo "Seeking workaround for swiftrt.o needing to be under sdkRoot"
515+
#find ${swift_res_root} -type d -exec cp -av ${SWIFTRT} {} \;
516+
fi
511517
else
512518
rm -r ${swift_res_root}/usr/{include,lib}/{i686,riscv64}-linux-android
513519
rm -r ${swift_res_root}/usr/lib/swift/clang/lib/linux/*{i[36]86,riscv64}*
@@ -542,14 +548,17 @@ EOF
542548
else
543549
SWIFT_RES_DIR="swift"
544550
fi
551+
SWIFT_STATIC_RES_DIR="swift_static-${arch}"
545552

546553
cat >> swift-sdk.json <<EOF
547554
"${arch}-unknown-linux-android${api}": {
548555
"sdkRootPath": "${ndk_sysroot}",
549556
"swiftResourcesPath": "${swift_res_root}/usr/lib/${SWIFT_RES_DIR}",
550-
"swiftStaticResourcesPath": "${swift_res_root}/usr/lib/swift_static-${arch}",
557+
"swiftStaticResourcesPath": "${swift_res_root}/usr/lib/${SWIFT_STATIC_RES_DIR}",
551558
"toolsetPaths": [ "swift-toolset.json" ]
552559
EOF
560+
#"librarySearchPaths": [ "${swift_res_root}/usr/lib/swift-x86_64/android/x86_64" ],
561+
#"includeSearchPaths": [ "${ndk_sysroot}/usr/include" ],
553562
done
554563
done
555564

0 commit comments

Comments
 (0)