11#! /bin/bash
2- set -e
3- source swift-define
2+ set -euo pipefail
3+
4+ SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
5+ source " $SCRIPT_DIR /swift-define"
6+ JNI_LIBS_DIR=" $SRC_ROOT /app/src/main/jniLibs/$ANDROID_ARCH "
47
58# Install macOS dependencies
69if [[ $OSTYPE == ' darwin' * ]]; then
@@ -12,11 +15,38 @@ if [[ $OSTYPE == 'darwin'* ]]; then
1215fi
1316
1417# Copy Swift libraries
15- rm -rf $SRC_ROOT /app/src/main/jniLibs/$ANDROID_ARCH /
16- mkdir -p $SRC_ROOT /app/src/main/jniLibs/$ANDROID_ARCH /
17- cp -rf $SWIFT_ANDROID_LIBS /* .so \
18- $SRC_ROOT /app/src/main/jniLibs/$ANDROID_ARCH /
18+ rm -rf " $JNI_LIBS_DIR /"
19+ mkdir -p " $JNI_LIBS_DIR /"
20+
21+ copied_swift_libs=0
22+ if [[ -d " $SWIFT_ANDROID_RUNTIME_LIBS " ]]; then
23+ shopt -s nullglob
24+ for so in " $SWIFT_ANDROID_RUNTIME_LIBS " /* .so; do
25+ cp -f " $so " " $JNI_LIBS_DIR /"
26+ copied_swift_libs=1
27+ done
28+ shopt -u nullglob
29+ fi
30+
31+ # Fallback for newer Skip/Swift SDK layouts where runtime libs are emitted into `.build`.
32+ if [[ $copied_swift_libs -eq 0 && -d " $SWIFT_PACKAGE_SRC /.build/$SWIFT_TARGET_NAME /debug" ]]; then
33+ shopt -s nullglob
34+ for so in " $SWIFT_PACKAGE_SRC /.build/$SWIFT_TARGET_NAME /debug" /libSwift* .so; do
35+ cp -f " $so " " $JNI_LIBS_DIR /"
36+ copied_swift_libs=1
37+ done
38+ shopt -u nullglob
39+ fi
40+
41+ if [[ $copied_swift_libs -eq 0 ]]; then
42+ echo " Warning: No Swift runtime libraries found to copy."
43+ fi
44+
1945# Copy C stdlib
20- cp -rf $SWIFT_ANDROID_SYSROOT /usr/lib/$ANDROID_LIB /libc++_shared.so \
21- $SRC_ROOT /app/src/main/jniLibs/$ANDROID_ARCH /
46+ if [[ -f " $SWIFT_ANDROID_SYSROOT /usr/lib/$ANDROID_LIB /libc++_shared.so" ]]; then
47+ cp -f " $SWIFT_ANDROID_SYSROOT /usr/lib/$ANDROID_LIB /libc++_shared.so" \
48+ " $JNI_LIBS_DIR /"
49+ else
50+ echo " Warning: libc++_shared.so not found at $SWIFT_ANDROID_SYSROOT /usr/lib/$ANDROID_LIB /libc++_shared.so"
51+ fi
2252echo " Copied Swift libraries"
0 commit comments