Skip to content

Commit 276cd53

Browse files
committed
Update build script
1 parent efac3fc commit 276cd53

3 files changed

Lines changed: 30 additions & 8 deletions

File tree

Demo/build-swift.sh

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,32 @@
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
# Build with SwiftPM
6-
ANDROID_NDK_ROOT="" ANDROID_SDK_VERSION=$ANDROID_SDK_VERSION skip android build --arch $SWIFT_TARGET_ARCH --android-api-level $ANDROID_SDK_VERSION
9+
ANDROID_NDK_ROOT="" ANDROID_SDK_VERSION="$ANDROID_SDK_VERSION" skip android build --arch "$SWIFT_TARGET_ARCH" --android-api-level "$ANDROID_SDK_VERSION"
710

811
# Copy compiled Swift package
9-
mkdir -p $SRC_ROOT/app/src/main/jniLibs/$ANDROID_ARCH/
10-
cp -rf $SWIFT_PACKAGE_SRC/.build/$SWIFT_TARGET_NAME/debug/libSwiftAndroidApp.so \
11-
$SRC_ROOT/app/src/main/jniLibs/$ANDROID_ARCH/
12+
mkdir -p "$JNI_LIBS_DIR/"
13+
cp -f "$SWIFT_PACKAGE_SRC/.build/$SWIFT_TARGET_NAME/debug/libSwiftAndroidApp.so" "$JNI_LIBS_DIR/"
14+
15+
# Copy Swift runtime shared libraries required by libSwiftAndroidApp.so.
16+
if [[ -d "$SWIFT_ANDROID_RUNTIME_LIBS" ]]; then
17+
shopt -s nullglob
18+
for so in "$SWIFT_ANDROID_RUNTIME_LIBS"/*.so; do
19+
cp -f "$so" "$JNI_LIBS_DIR/"
20+
done
21+
shopt -u nullglob
22+
fi
23+
24+
# Copy SwiftJava helper library when available.
25+
if [[ -f "$SWIFT_PACKAGE_SRC/.build/$SWIFT_TARGET_NAME/debug/libSwiftJava.so" ]]; then
26+
cp -f "$SWIFT_PACKAGE_SRC/.build/$SWIFT_TARGET_NAME/debug/libSwiftJava.so" "$JNI_LIBS_DIR/"
27+
fi
28+
29+
# Copy C++ runtime from Android sysroot.
30+
if [[ -f "$SWIFT_ANDROID_SYSROOT/usr/lib/$ANDROID_LIB/libc++_shared.so" ]]; then
31+
cp -f "$SWIFT_ANDROID_SYSROOT/usr/lib/$ANDROID_LIB/libc++_shared.so" "$JNI_LIBS_DIR/"
32+
fi

Demo/setup.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ rm -rf "$JNI_LIBS_DIR/"
1919
mkdir -p "$JNI_LIBS_DIR/"
2020

2121
copied_swift_libs=0
22-
if [[ -d "$SWIFT_ANDROID_LIBS" ]]; then
22+
if [[ -d "$SWIFT_ANDROID_RUNTIME_LIBS" ]]; then
2323
shopt -s nullglob
24-
for so in "$SWIFT_ANDROID_LIBS"/*.so; do
24+
for so in "$SWIFT_ANDROID_RUNTIME_LIBS"/*.so; do
2525
cp -f "$so" "$JNI_LIBS_DIR/"
2626
copied_swift_libs=1
2727
done

Demo/swift-define

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ fi
2222
SWIFT_SDK=swift-$SWIFT_VERSION_SHORT-release-android-$ANDROID_SDK_VERSION-sdk
2323
SWIFT_ANDROID_SYSROOT="$SWIFT_SDKS_ROOT/$SWIFT_ARTIFACT_BUNDLE/swift-android/ndk-sysroot"
2424
SWIFT_ANDROID_LIBS="$SWIFT_SDKS_ROOT/$SWIFT_ARTIFACT_BUNDLE/swift-android/swift-resources/usr/lib/swift-$SWIFT_TARGET_ARCH"
25+
SWIFT_ANDROID_RUNTIME_LIBS="$SWIFT_ANDROID_LIBS/android"
2526
SWIFT_PACKAGE_SRC=$SRC_ROOT
2627
JAVA_HOME=$SWIFT_ANDROID_SYSROOT/usr
2728

0 commit comments

Comments
 (0)