1
1
#! /bin/bash -ex
2
2
# Swift Android SDK: Top-level Build Script
3
3
4
- # the architecture(s) to build
5
- ARCH=aarch64
6
- # ARCH=x86_64,aarch64
7
- NDK=android-ndk-r27c
8
- API=28
4
+ # the architecture(s) to build; on GH Actions we build everything
5
+ if [[ -z " ${CI} " ]]; then
6
+ TARGET_ARCHS=${TARGET_ARCHS:- aarch64}
7
+ else
8
+ TARGET_ARCHS=${TARGET_ARCHS:- aarch64,armv7,x86_64,x86}
9
+ fi
10
+
11
+ ANDROID_NDK_VERSION=android-ndk-r27c
12
+ ANDROID_API=28
9
13
10
14
SDKROOT=${TMPDIR:-/ tmp} /swift-android-sdk
11
15
mkdir -p ${SDKROOT}
12
16
13
17
# Install a Swift host toolchain if it isn't already present
14
18
SWIFT_ROOT=${SDKROOT} /host-toolchain
15
- HOST_ARCH=ubuntu24.04
19
+ HOST_OS=ubuntu $( lsb_release -sr )
16
20
SWIFT_VERSION=6.1
17
21
SWIFT_TAG=" swift-${SWIFT_VERSION} -RELEASE"
18
22
SWIFT_BRANCH=" swift-$( echo $SWIFT_TAG | cut -d- -f2) -release"
19
- SWIFT_BASE=$SWIFT_TAG -$HOST_ARCH
23
+ SWIFT_BASE=$SWIFT_TAG -$HOST_OS
20
24
21
25
if [[ ! -d $SWIFT_ROOT ]]; then
22
26
mkdir -p $SWIFT_ROOT
23
27
pushd $SWIFT_ROOT
24
28
25
- SWIFT_URL=" https://download.swift.org/$SWIFT_BRANCH /$( echo $HOST_ARCH | tr -d ' .' ) /$SWIFT_TAG /$SWIFT_BASE .tar.gz"
29
+ SWIFT_URL=" https://download.swift.org/$SWIFT_BRANCH /$( echo $HOST_OS | tr -d ' .' ) /$SWIFT_TAG /$SWIFT_BASE .tar.gz"
26
30
wget -q $SWIFT_URL
27
31
tar xzf $SWIFT_BASE .tar.gz
28
32
@@ -36,7 +40,7 @@ $HOST_TOOLCHAIN/bin/swift --version
36
40
# ensure the correct Swift is first in the PATH
37
41
export PATH=$HOST_TOOLCHAIN /bin:$PATH
38
42
39
- export ANDROID_NDK_HOME=${SDKROOT} /ndk/${NDK }
43
+ export ANDROID_NDK_HOME=${SDKROOT} /ndk/${ANDROID_NDK_VERSION }
40
44
export ANDROID_NDK=${ANDROID_NDK_HOME}
41
45
42
46
if [[ ! -d ${ANDROID_NDK_HOME} ]]; then
@@ -89,5 +93,5 @@ pushd ${SDKROOT}/src/swift-project
89
93
perl -pi -e ' s%String\(cString: getpass%\"fake\" //%' swiftpm/Sources/PackageRegistryCommand/PackageRegistryCommand+Auth.swift
90
94
popd
91
95
92
- ./scripts/build.sh --products-dir ${SDKROOT} /products --source-dir ${SDKROOT} /src --build-dir ${SDKROOT} /build --ndk-home ${ANDROID_NDK_HOME} --android-api ${API } --host-toolchain ${HOST_TOOLCHAIN} --archs $ARCH
96
+ ./scripts/build.sh --products-dir ${SDKROOT} /products --source-dir ${SDKROOT} /src --build-dir ${SDKROOT} /build --ndk-home ${ANDROID_NDK_HOME} --android-api ${ANDROID_API } --host-toolchain ${HOST_TOOLCHAIN} --archs $TARGET_ARCHS
93
97
0 commit comments