Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use llvm toolchain for android build #23364

Merged
merged 1 commit into from May 25, 2019
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Use llvm toolchain for entirety of android build.

  • Loading branch information
jdm committed May 24, 2019
commit ccde5867fb67c03c42933e3625bb07cfd019cb68
@@ -352,7 +352,6 @@ def build(self, target=None, release=False, dev=False, jobs=None,
sys.exit(1)

env["RUST_TARGET"] = target
env["ANDROID_TOOLCHAIN_NAME"] = android_toolchain_name
with cd(openssl_dir):
status = call(
make_cmd + ["-f", "openssl.makefile"],
@@ -386,9 +385,7 @@ def build(self, target=None, release=False, dev=False, jobs=None,
android_toolchain_prefix + "-4.9", "prebuilt", host)
gcc_libs = path.join(gcc_toolchain, "lib", "gcc", android_toolchain_name, "4.9.x")

env['PATH'] = (path.join(llvm_toolchain, "bin") + ':'
+ path.join(gcc_toolchain, "bin") + ':'
+ env['PATH'])
env['PATH'] = (path.join(llvm_toolchain, "bin") + ':' + env['PATH'])
env['ANDROID_SYSROOT'] = path.join(env['ANDROID_NDK'], "sysroot")
support_include = path.join(env['ANDROID_NDK'], "sources", "android", "support", "include")
cpufeatures_include = path.join(env['ANDROID_NDK'], "sources", "android", "cpufeatures")
@@ -468,7 +465,6 @@ def build(self, target=None, release=False, dev=False, jobs=None,
env["NDK_ANDROID_VERSION"] = android_api
env["ANDROID_ABI"] = android_lib
env["ANDROID_PLATFORM"] = android_platform
env["ANDROID_TOOLCHAIN_NAME"] = "clang"
env["NDK_CMAKE_TOOLCHAIN_FILE"] = path.join(env['ANDROID_NDK'], "build", "cmake", "android.toolchain.cmake")
env["CMAKE_TOOLCHAIN_FILE"] = path.join(self.android_support_dir(), "toolchain.cmake")
# Set output dir for gradle aar files
@@ -11,5 +11,4 @@ set -o pipefail
source ./support/android/fakeld/fake-ld.sh

export _GCC_PARAMS="${@}"
call_gcc "arch-arm" "arm-linux-androideabi" "android-21" "armeabi" \
"arm-linux-androideabi"
call_gcc "arch-arm" "armeabi" "arm-linux-androideabi"
@@ -11,5 +11,4 @@ set -o pipefail
source ./support/android/fakeld/fake-ld.sh

export _GCC_PARAMS="${@}"
call_gcc "arch-arm64" "aarch64-linux-android" "android-21" "arm64-v8a" \
"aarch64-linux-android"
call_gcc "arch-arm64" "arm64-v8a" "aarch64-linux-android"
@@ -11,5 +11,4 @@ set -o pipefail
source ./support/android/fakeld/fake-ld.sh

export _GCC_PARAMS="${@}"
call_gcc "arch-arm" "arm-linux-androideabi" "android-21" "armeabi-v7a" \
"arm-linux-androideabi"
call_gcc "arch-arm" "armeabi-v7a" "armv7-linux-androideabi"
@@ -11,4 +11,4 @@ set -o pipefail
source ./support/android/fakeld/fake-ld.sh

export _GCC_PARAMS="${@}"
call_gcc "arch-x86" "x86" "android-21" "x86" "i686-linux-android"
call_gcc "arch-x86" "x86" "i686-linux-android"
@@ -13,25 +13,27 @@ call_gcc()
TARGET_DIR="${OUT_DIR}/../../.."

export _ANDROID_ARCH=$1
export _ANDROID_EABI=$2
export _ANDROID_PLATFORM=$3
export ANDROID_SYSROOT="${ANDROID_NDK}/platforms/${_ANDROID_PLATFORM}/${_ANDROID_ARCH}"
export _ANDROID_TARGET=$3
export ANDROID_SYSROOT="${ANDROID_NDK}/platforms/${ANDROID_PLATFORM}/${_ANDROID_ARCH}"
ANDROID_TOOLCHAIN=""
for host in "linux-x86_64" "linux-x86" "darwin-x86_64" "darwin-x86"; do
if [[ -d "${ANDROID_NDK}/toolchains/${_ANDROID_EABI}-4.9/prebuilt/${host}/bin" ]]; then
ANDROID_TOOLCHAIN="${ANDROID_NDK}/toolchains/${_ANDROID_EABI}-4.9/prebuilt/${host}/bin"
if [[ -d "${ANDROID_NDK}/toolchains/llvm/prebuilt/${host}/bin" ]]; then
ANDROID_TOOLCHAIN="${ANDROID_NDK}/toolchains/llvm/prebuilt/${host}/bin"
break
fi
done

ANDROID_CPU_ARCH_DIR=$4
ANDROID_CPU_ARCH_DIR=$2
ANDROID_CXX_LIBS="${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/${ANDROID_CPU_ARCH_DIR}"

echo "toolchain: ${ANDROID_TOOLCHAIN}"
echo "libs dir: ${ANDROID_CXX_LIBS}"
echo "sysroot: ${ANDROID_SYSROOT}"
echo "targetdir: ${ANDROID_CXX_LIBS}"
echo "targetdir: ${TARGET_DIR}"

"${ANDROID_TOOLCHAIN}/$5-gcc" \
--sysroot="${ANDROID_SYSROOT}" -L "${ANDROID_CXX_LIBS}" ${_GCC_PARAMS} -lc++
"${ANDROID_TOOLCHAIN}/clang" \
--sysroot="${ANDROID_SYSROOT}" \
--gcc-toolchain="${GCC_TOOLCHAIN}" \
--target="${_ANDROID_TARGET}" \
-L "${ANDROID_CXX_LIBS}" ${_GCC_PARAMS} -lc++
}
@@ -1,6 +1,6 @@
set(CMAKE_VERBOSE_MAKEFILE ON)
set(ANDROID_ABI $ENV{ANDROID_ABI})
set(ANDROID_TOOLCHAIN_NAME $ENV{ANDROID_TOOLCHAIN_NAME})
set(ANDROID_TOOLCHAIN_NAME clang)
set(ANDROID_PLATFORM $ENV{ANDROID_PLATFORM})

include($ENV{NDK_CMAKE_TOOLCHAIN_FILE})
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.