@@ -154,7 +154,21 @@ jobs:
154154 export ANDROID_STL_INCLUDE="${ANDROID_NDK_HOME}/sources/cxx-stl/gnu-libstdc++/4.9/include"
155155 export ANDROID_STL_INCLUDE_ABI="${ANDROID_NDK_HOME}/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include"
156156 export ANDROID_STL_LIB="${ANDROID_NDK_HOME}/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a"
157- export ANDROID_LLVM_CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android${ANDROID_NDK_API_LEVEL}-clang++"
157+ export ANDROID_LLVM_BIN="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin"
158+ export ANDROID_LLVM_CXX_WRAPPER="${GITHUB_WORKSPACE}/android-clang++"
159+ if [ -x "${ANDROID_LLVM_BIN}/aarch64-linux-android${ANDROID_NDK_API_LEVEL}-clang++" ]; then
160+ printf '%s\n' '#!/usr/bin/env bash' \
161+ "exec \"${ANDROID_LLVM_BIN}/aarch64-linux-android${ANDROID_NDK_API_LEVEL}-clang++\" \"\$@\"" \
162+ > "${ANDROID_LLVM_CXX_WRAPPER}"
163+ elif [ -x "${ANDROID_LLVM_BIN}/clang++" ]; then
164+ printf '%s\n' '#!/usr/bin/env bash' \
165+ "exec \"${ANDROID_LLVM_BIN}/clang++\" --target=aarch64-none-linux-android${ANDROID_NDK_API_LEVEL} \"\$@\"" \
166+ > "${ANDROID_LLVM_CXX_WRAPPER}"
167+ else
168+ echo "No usable LLVM clang++ found under ${ANDROID_LLVM_BIN}" >&2
169+ exit 1
170+ fi
171+ chmod +x "${ANDROID_LLVM_CXX_WRAPPER}"
158172 export JAVA_HOME="${JAVA_HOME_11_X64}"
159173 export LANG="C.UTF-8"
160174 export LC_ALL="C.UTF-8"
@@ -173,7 +187,7 @@ jobs:
173187 -DskipTests \
174188 -Djavacpp.platform="${ANDROID_PLATFORM}" \
175189 -Djavacpp.platform.properties="${ANDROID_PLATFORM}" \
176- -Djavacpp.platform.compiler="${ANDROID_LLVM_CXX }" \
190+ -Djavacpp.platform.compiler="${ANDROID_LLVM_CXX_WRAPPER }" \
177191 -Djavacpp.platform.root="${ANDROID_NDK_HOME}" \
178192 -pl tensorflow-core/tensorflow-core-api \
179193 -am \
0 commit comments