@@ -326,8 +326,9 @@ for arch in $archs; do
326326 -DOPENSSL_INCLUDE_DIR=$sdk_root /usr/include \
327327 -DOPENSSL_SSL_LIBRARY=$sdk_root /usr/lib/libssl.a \
328328 -DOPENSSL_CRYPTO_LIBRARY=$sdk_root /usr/lib/libcrypto.a \
329- -DCURL_USE_OPENSSL=ON \
330329 -DCURLSSLOPT_NATIVE_CA=ON \
330+ -DCURL_USE_OPENSSL=ON \
331+ -DCURL_USE_LIBSSH2=OFF \
331332 -DTHREADS_PREFER_PTHREAD_FLAG=OFF \
332333 -DCMAKE_THREAD_PREFER_PTHREAD=OFF \
333334 -DCMAKE_THREADS_PREFER_PTHREAD_FLAG=OFF \
@@ -486,52 +487,69 @@ if [[ ${INCLUDE_NDK_SYSROOT} != 1 ]]; then
486487 # ANDROID_NDK_HOME="/opt/homebrew/share/android-ndk"
487488 mkdir scripts/
488489 cat > scripts/setup-android-sdk.sh << 'EOF '
489- #/bin/sh
490+ #/bin/bash
490491# this script will setup the ndk-sysroot with links to the
491492# local installation indicated by ANDROID_NDK_HOME
492493set -e
493494if [ -z "${ANDROID_NDK_HOME}" ]; then
494495 echo "$(basename $0): error: missing environment variable ANDROID_NDK_HOME"
495496 exit 1
496497fi
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"
500509 exit 1
501510fi
502- DESTINATION=$(dirname $(dirname $(realpath $0)))/ndk-sysroot
503- # clear out any previous NDK setup
504- rm -rf ${DESTINATION}
505511
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
507524SWIFT_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
516530 triple=$(basename ${triplePath})
517- ln -s $(realpath $ {triplePath}) ${DESTINATION }/usr/lib/${triple}
531+ ln -s ${triplePath} ${ndk_sysroot }/usr/lib/${triple}
518532 done
533+ else
534+ ndk_action="${ndk_re}copied"
535+ cp -a ${ndk_prebuilt}/*/sysroot ${ndk_sysroot}
519536fi
520537
521538# copy each architecture's swiftrt.o into the sysroot,
522539# 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
532550done
533551
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} "
535553EOF
536554 chmod +x scripts/setup-android-sdk.sh
537555else
0 commit comments