@@ -326,8 +326,9 @@ for arch in $archs; do
326
326
-DOPENSSL_INCLUDE_DIR=$sdk_root /usr/include \
327
327
-DOPENSSL_SSL_LIBRARY=$sdk_root /usr/lib/libssl.a \
328
328
-DOPENSSL_CRYPTO_LIBRARY=$sdk_root /usr/lib/libcrypto.a \
329
- -DCURL_USE_OPENSSL=ON \
330
329
-DCURLSSLOPT_NATIVE_CA=ON \
330
+ -DCURL_USE_OPENSSL=ON \
331
+ -DCURL_USE_LIBSSH2=OFF \
331
332
-DTHREADS_PREFER_PTHREAD_FLAG=OFF \
332
333
-DCMAKE_THREAD_PREFER_PTHREAD=OFF \
333
334
-DCMAKE_THREADS_PREFER_PTHREAD_FLAG=OFF \
@@ -486,52 +487,69 @@ if [[ ${INCLUDE_NDK_SYSROOT} != 1 ]]; then
486
487
# ANDROID_NDK_HOME="/opt/homebrew/share/android-ndk"
487
488
mkdir scripts/
488
489
cat > scripts/setup-android-sdk.sh << 'EOF '
489
- #/bin/sh
490
+ #/bin/bash
490
491
# this script will setup the ndk-sysroot with links to the
491
492
# local installation indicated by ANDROID_NDK_HOME
492
493
set -e
493
494
if [ -z "${ANDROID_NDK_HOME}" ]; then
494
495
echo "$(basename $0): error: missing environment variable ANDROID_NDK_HOME"
495
496
exit 1
496
497
fi
497
- PREBUILT="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt"
498
- if [ ! -d "${PREBUILT}" ]; then
499
- echo "$(basename $0): error: ANDROID_NDK_HOME not found: ${PREBUILT}"
498
+ ndk_prebuilt="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt"
499
+ if [ ! -d "${ndk_prebuilt}" ]; then
500
+ echo "$(basename $0): error: ANDROID_NDK_HOME not found: ${ndk_prebuilt}"
501
+ exit 1
502
+ fi
503
+
504
+ #Pkg.Revision = 27.0.12077973
505
+ #Pkg.Revision = 28.1.13356709
506
+ ndk_version=$(grep '^Pkg.Revision = ' "${ANDROID_NDK_HOME}/source.properties" | cut -f3- -d' ' | cut -f 1 -d '.')
507
+ if [[ "${ndk_version}" -lt 27 ]]; then
508
+ echo "$(basename $0): error: minimum NDK version 27 required; found ${ndk_version} in ${ANDROID_NDK_HOME}/source.properties"
500
509
exit 1
501
510
fi
502
- DESTINATION=$(dirname $(dirname $(realpath $0)))/ndk-sysroot
503
- # clear out any previous NDK setup
504
- rm -rf ${DESTINATION}
505
511
506
- # copy vs. link the NDK files
512
+ cd $(dirname $(dirname $(realpath $0)))
513
+ swift_resources=swift-resources
514
+ ndk_sysroot=ndk-sysroot
515
+
516
+ if [[ -d "${ndk_sysroot}" ]]; then
517
+ # clear out any previous NDK setup
518
+ rm -rf ${ndk_sysroot}
519
+ ndk_re="re-"
520
+ fi
521
+
522
+
523
+ # link vs. copy the NDK files
507
524
SWIFT_ANDROID_NDK_LINK=${SWIFT_ANDROID_NDK_LINK:-1}
508
- if [[ "${SWIFT_ANDROID_NDK_LINK}" != 1 ]]; then
509
- ANDROID_NDK_DESC="copied"
510
- cp -a ${PREBUILT}/*/sysroot ${DESTINATION}
511
- else
512
- ANDROID_NDK_DESC="linked"
513
- mkdir -p ${DESTINATION}/usr/lib
514
- ln -s $(realpath ${PREBUILT}/*/sysroot/usr/include) ${DESTINATION}/usr/include
515
- for triplePath in ${PREBUILT}/*/sysroot/usr/lib/*; do
525
+ if [[ "${SWIFT_ANDROID_NDK_LINK}" == 1 ]]; then
526
+ ndk_action="${ndk_re}linked"
527
+ mkdir -p ${ndk_sysroot}/usr/lib
528
+ ln -s ${ndk_prebuilt}/*/sysroot/usr/include ${ndk_sysroot}/usr/include
529
+ for triplePath in ${ndk_prebuilt}/*/sysroot/usr/lib/*; do
516
530
triple=$(basename ${triplePath})
517
- ln -s $(realpath $ {triplePath}) ${DESTINATION }/usr/lib/${triple}
531
+ ln -s ${triplePath} ${ndk_sysroot }/usr/lib/${triple}
518
532
done
533
+ else
534
+ ndk_action="${ndk_re}copied"
535
+ cp -a ${ndk_prebuilt}/*/sysroot ${ndk_sysroot}
519
536
fi
520
537
521
538
# copy each architecture's swiftrt.o into the sysroot,
522
539
# working around https://github.com/swiftlang/swift/pull/79621
523
- for swiftrt in ${DESTINATION}/../swift-resources/usr/lib/swift-*/android/*/swiftrt.o; do
524
- arch=$(basename $(dirname ${swiftrt}))
525
- mkdir -p ${DESTINATION}/usr/lib/swift/android/${arch}
526
- cp -a ${swiftrt} ${DESTINATION}/usr/lib/swift/android/${arch}
527
- done
528
- for swiftrt in ${DESTINATION}/../swift-resources/usr/lib/swift_static-*/android/*/swiftrt.o; do
529
- arch=$(basename $(dirname ${swiftrt}))
530
- mkdir -p ${DESTINATION}/usr/lib/swift_static/android/${arch}
531
- cp -a ${swiftrt} ${DESTINATION}/usr/lib/swift_static/android/${arch}
540
+ for folder in swift swift_static; do
541
+ for swiftrt in ${swift_resources}/usr/lib/${folder}-*/android/*/swiftrt.o; do
542
+ arch=$(basename $(dirname ${swiftrt}))
543
+ mkdir -p ${ndk_sysroot}/usr/lib/${folder}/android/${arch}
544
+ if [[ "${SWIFT_ANDROID_NDK_LINK}" == 1 ]]; then
545
+ ln -s ../../../../../../${swiftrt} ${ndk_sysroot}/usr/lib/${folder}/android/${arch}/
546
+ else
547
+ cp -a ${swiftrt} ${ndk_sysroot}/usr/lib/${folder}/android/${arch}/
548
+ fi
549
+ done
532
550
done
533
551
534
- echo "$(basename $0): success: ndk-sysroot ${ANDROID_NDK_DESC } to Android SDK "
552
+ echo "$(basename $0): success: ndk-sysroot ${ndk_action } to Android NDK at ${ndk_prebuilt} "
535
553
EOF
536
554
chmod +x scripts/setup-android-sdk.sh
537
555
else
0 commit comments