Skip to content

Commit

Permalink
Fix Android toolchain file
Browse files Browse the repository at this point in the history
This got broken with the new Android SDK update, fix this.
  • Loading branch information
codemercenary committed Jan 6, 2016
1 parent a75c14c commit 1ae951e
Showing 1 changed file with 34 additions and 12 deletions.
46 changes: 34 additions & 12 deletions toolchain-android.cmake
@@ -1,22 +1,44 @@
if("$ENV{ARMv8}") # GCC 4.9
if(BUILD_64_BIT) # ARMv8 with GCC 4.9
set(BUILD_ANDROID64 1)
set(C_COMPILER aarch64-linux-android)
set(CXX_COMPILER aarch64-linux-android)
set(IDENTIFIER -4.9-aarch64)
else() # GCC 4.8
set(BUILD_ANDROID 1)
set(ANDROID_NDK_TOOL_PREFIX aarch64-linux-android)
set(_ndk_suffix -4.9-aarch64)
else() # GCC 4.8
set(ARM_TARGET "armeabi-v7a")
set(C_COMPILER arm-linux-androideabi)
set(CXX_COMPILER arm-linux-androideabi)
set(ANDROID_NDK_TOOL_PREFIX arm-linux-androideabi)
endif()
set(BUILD_ANDROID 1)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_SYSTEM_VERSION 1)
set(BUILD_ARM 1)
set(LOCAL_ARM_NEON "true")
set(ANDROID_COMMON_FLAGS " --sysroot=${LLVM_ANDROID_TOOLCHAIN_DIR}${IDENTIFIER}/sysroot -B${LLVM_ANDROID_TOOLCHAIN_DIR}${IDENTIFIER} ")
set(CMAKE_C_COMPILER ${LLVM_ANDROID_TOOLCHAIN_DIR}${IDENTIFIER}/bin/${C_COMPILER}-gcc)
set(CMAKE_CXX_COMPILER ${LLVM_ANDROID_TOOLCHAIN_DIR}${IDENTIFIER}/bin/${CXX_COMPILER}-g++)

if(MSYS)
set(_exe_suffix .exe)
endif()

#For reasons beyond my comprehension, this file is parsed multiple times
#and in some of them, cache variables are not preserved so we have to store
#this in an environmental variable...
if(NOT LLVM_ANDROID_TOOLCHAIN_DIR)
set(LLVM_ANDROID_TOOLCHAIN_DIR $ENV{LLVM_ANDROID_TOOLCHAIN_DIR})
else()
set(ENV{LLVM_ANDROID_TOOLCHAIN_DIR} ${LLVM_ANDROID_TOOLCHAIN_DIR} CACHE PATH)
endif()

find_path(ANDROID_NDK_ROOT bin/${ANDROID_NDK_TOOL_PREFIX}-gcc${_exe_suffix} PATHS
${LLVM_ANDROID_TOOLCHAIN_DIR}${_ndk_suffix} #legacy variable
/opt/android-standalone-toolchain${_ndk_suffix}
${LLVM_ANDROID_TOOLCHAIN_DIR}
/opt/android-standalone-toolchain
)
if(NOT ANDROID_NDK_ROOT)
message(FATAL_ERROR "ANDROID_NDK_ROOT could not be located. Have you installed the NDK?")
endif()

set(ANDROID_COMMON_FLAGS " --sysroot=${ANDROID_NDK_ROOT}/sysroot -B${ANDROID_NDK_ROOT} ")
set(CMAKE_C_COMPILER ${ANDROID_NDK_ROOT}/bin/${ANDROID_NDK_TOOL_PREFIX}-gcc${_exe_suffix} CACHE FILEPATH "C Compiler" FORCE)
set(CMAKE_CXX_COMPILER ${ANDROID_NDK_ROOT}/bin/${ANDROID_NDK_TOOL_PREFIX}-g++${_exe_suffix} CACHE FILEPATH "C++ Compiler" FORCE)
set(ANDROID_STRIP_COMMAND ${ANDROID_NDK_ROOT}/bin/${ANDROID_NDK_TOOL_PREFIX}-strip)
set(CMAKE_C_FLAGS "${ANDROID_COMMON_FLAGS}" CACHE STRING "toolchain_cflags" FORCE)
set(CMAKE_CXX_FLAGS "${ANDROID_COMMON_FLAGS}" CACHE STRING "toolchain_cxxflags" FORCE)
set(CMAKE_LINK_FLAGS "${ANDROID_COMMON_FLAGS}" CACHE STRING "toolchain_linkflags" FORCE)
Expand Down

0 comments on commit 1ae951e

Please sign in to comment.