From d12e6adf67d5c12af71960586f7d36d4ff8c459d Mon Sep 17 00:00:00 2001 From: johnno1962 Date: Tue, 6 Sep 2016 23:54:04 +0100 Subject: [PATCH 1/3] Changes for Android build of Foundation --- utils/build-script-impl | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index 779893aa15fd1..04918ca82e657 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -2259,7 +2259,17 @@ for host in "${ALL_HOSTS[@]}"; do # However, we only have the triple and sysroot for the host. # Also, we will need to tell it which linker to use. FOUNDATION_BUILD_ARGS=() - if [[ $(is_cross_tools_host ${host}) ]]; then + FOUNDATION_CFLAGS="CFLAGS=${CFLAGS}" + FOUNDATION_SFLAGS="SWIFTCFLAGS=${SWIFTCFLAGS}" + FOUNDATION_LDFLAGS="LDFLAGS=${LDFLAGS}" + if [[ "${ANDROID_NDK}" != "" ]]; then + FOUNDATION_CFLAGS="CFLAGS=-DDEPLOYMENT_TARGET_ANDROID --sysroot=${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm -I${ANDROID_ICU_UC}/include -I\${SDKROOT}/lib/swift" + FOUNDATION_SFLAGS="SWIFTCFLAGS=-DDEPLOYMENT_TARGET_ANDROID -I${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm/usr/include" + FOUNDATION_LDFLAGS="LDFLAGS=-fuse-ld=gold --sysroot=${ANDROID_NDK}/platforms/android-21/arch-arm -L${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x -L${ANDROID_ICU_UC} -L\${SDKROOT}/lib/swift/android -ldispatch" + FOUNDATION_BUILD_ARGS+=( + "--target=armv7-none-linux-androideabi" + ) + elif [[ $(is_cross_tools_host ${host}) ]]; then FOUNDATION_BUILD_ARGS+=( "--target=${SWIFT_HOST_TRIPLE}" ) @@ -2273,7 +2283,7 @@ for host in "${ALL_HOSTS[@]}"; do with_pushd "${FOUNDATION_SOURCE_DIR}" \ call env SWIFTC="${SWIFTC_BIN}" CLANG="${LLVM_BIN}"/clang SWIFT="${SWIFT_BIN}" \ - SDKROOT="${SWIFT_BUILD_PATH}" BUILD_DIR="${build_dir}" DSTROOT="$(get_host_install_destdir ${host})" PREFIX="$(get_host_install_prefix ${host})" ./configure "${FOUNDATION_BUILD_TYPE}" ${FOUNDATION_BUILD_ARGS[@]} -DXCTEST_BUILD_DIR=${XCTEST_BUILD_DIR} $LIBDISPATCH_BUILD_ARGS + SDKROOT="${SWIFT_BUILD_PATH}" BUILD_DIR="${build_dir}" DSTROOT="$(get_host_install_destdir ${host})" PREFIX="$(get_host_install_prefix ${host})" "$FOUNDATION_CFLAGS" "$FOUNDATION_SFLAGS" "$FOUNDATION_LDFLAGS" ./configure "${FOUNDATION_BUILD_TYPE}" ${FOUNDATION_BUILD_ARGS[@]} -DXCTEST_BUILD_DIR=${XCTEST_BUILD_DIR} $LIBDISPATCH_BUILD_ARGS with_pushd "${FOUNDATION_SOURCE_DIR}" \ call ${NINJA_BIN} From 80951d47bd84d17245b186e7e5aea3389f60d2f1 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 8 Sep 2016 14:46:53 +0100 Subject: [PATCH 2/3] Resolve Operation Queue probs on Android --- utils/build-script-impl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index 04918ca82e657..cd28b8197c6d2 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -2263,8 +2263,8 @@ for host in "${ALL_HOSTS[@]}"; do FOUNDATION_SFLAGS="SWIFTCFLAGS=${SWIFTCFLAGS}" FOUNDATION_LDFLAGS="LDFLAGS=${LDFLAGS}" if [[ "${ANDROID_NDK}" != "" ]]; then - FOUNDATION_CFLAGS="CFLAGS=-DDEPLOYMENT_TARGET_ANDROID --sysroot=${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm -I${ANDROID_ICU_UC}/include -I\${SDKROOT}/lib/swift" - FOUNDATION_SFLAGS="SWIFTCFLAGS=-DDEPLOYMENT_TARGET_ANDROID -I${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm/usr/include" + FOUNDATION_CFLAGS="CFLAGS=-DDEPLOYMENT_TARGET_ANDROID -DDEPLOYMENT_ENABLE_LIBDISPATCH --sysroot=${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm -I${ANDROID_ICU_UC}/include -I\${SDKROOT}/lib/swift" + FOUNDATION_SFLAGS="SWIFTCFLAGS=-DDEPLOYMENT_TARGET_ANDROID -DDEPLOYMENT_ENABLE_LIBDISPATCH -I${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm/usr/include" FOUNDATION_LDFLAGS="LDFLAGS=-fuse-ld=gold --sysroot=${ANDROID_NDK}/platforms/android-21/arch-arm -L${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x -L${ANDROID_ICU_UC} -L\${SDKROOT}/lib/swift/android -ldispatch" FOUNDATION_BUILD_ARGS+=( "--target=armv7-none-linux-androideabi" From fe03eb362389ed714b8ae62bc4e46129b1b107c2 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 13 Sep 2016 12:01:35 +0100 Subject: [PATCH 3/3] use __ANDROID__ to detch Android build --- utils/build-script-impl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index cd28b8197c6d2..dedd96e522974 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -2263,8 +2263,8 @@ for host in "${ALL_HOSTS[@]}"; do FOUNDATION_SFLAGS="SWIFTCFLAGS=${SWIFTCFLAGS}" FOUNDATION_LDFLAGS="LDFLAGS=${LDFLAGS}" if [[ "${ANDROID_NDK}" != "" ]]; then - FOUNDATION_CFLAGS="CFLAGS=-DDEPLOYMENT_TARGET_ANDROID -DDEPLOYMENT_ENABLE_LIBDISPATCH --sysroot=${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm -I${ANDROID_ICU_UC}/include -I\${SDKROOT}/lib/swift" - FOUNDATION_SFLAGS="SWIFTCFLAGS=-DDEPLOYMENT_TARGET_ANDROID -DDEPLOYMENT_ENABLE_LIBDISPATCH -I${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm/usr/include" + FOUNDATION_CFLAGS="CFLAGS=-DDEPLOYMENT_ENABLE_LIBDISPATCH --sysroot=${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm -I${ANDROID_ICU_UC}/include -I\${SDKROOT}/lib/swift" + FOUNDATION_SFLAGS="SWIFTCFLAGS=-DDEPLOYMENT_ENABLE_LIBDISPATCH -I${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm/usr/include" FOUNDATION_LDFLAGS="LDFLAGS=-fuse-ld=gold --sysroot=${ANDROID_NDK}/platforms/android-21/arch-arm -L${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x -L${ANDROID_ICU_UC} -L\${SDKROOT}/lib/swift/android -ldispatch" FOUNDATION_BUILD_ARGS+=( "--target=armv7-none-linux-androideabi"