2
0
Эх сурвалжийг харах

Fix Android toolchain so that Clang always comes after GCC.
Merge some of the changes from one of the android-cmake's PR for NDK r10c.

Yao Wei Tjong 姚伟忠 11 жил өмнө
parent
commit
dc1753e7f9

+ 12 - 3
Source/CMake/Toolchains/android.toolchain.cmake

@@ -645,9 +645,8 @@ if( BUILD_WITH_ANDROID_NDK )
  endif()
  endif()
  if( NOT __availableToolchains )
  if( NOT __availableToolchains )
   file( GLOB __availableToolchainsLst RELATIVE "${ANDROID_NDK_TOOLCHAINS_PATH}" "${ANDROID_NDK_TOOLCHAINS_PATH}/*" )
   file( GLOB __availableToolchainsLst RELATIVE "${ANDROID_NDK_TOOLCHAINS_PATH}" "${ANDROID_NDK_TOOLCHAINS_PATH}/*" )
-  if( __availableToolchains )
-   list(SORT __availableToolchainsLst) # we need clang to go after gcc
-  endif()
+  # Urho3D: bug fix
+  list(SORT __availableToolchainsLst) # we need clang to go after gcc
   __LIST_FILTER( __availableToolchainsLst "^[.]" )
   __LIST_FILTER( __availableToolchainsLst "^[.]" )
   __LIST_FILTER( __availableToolchainsLst "llvm" )
   __LIST_FILTER( __availableToolchainsLst "llvm" )
   __LIST_FILTER( __availableToolchainsLst "renderscript" )
   __LIST_FILTER( __availableToolchainsLst "renderscript" )
@@ -1302,6 +1301,9 @@ elseif( ARMEABI_V6 )
  set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv6 -mfloat-abi=softfp -mfpu=vfp" ) # vfp == vfpv2
  set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv6 -mfloat-abi=softfp -mfpu=vfp" ) # vfp == vfpv2
 elseif( ARMEABI )
 elseif( ARMEABI )
  set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv5te -mtune=xscale -msoft-float" )
  set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv5te -mtune=xscale -msoft-float" )
+# Urho3D: merged from gongminmin's PR
+elseif( ARM64_V8A )
+ set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv8-a" )
 endif()
 endif()
 
 
 if( ANDROID_STL MATCHES "gnustl" AND (EXISTS "${__libstl}" OR EXISTS "${__libsupcxx}") )
 if( ANDROID_STL MATCHES "gnustl" AND (EXISTS "${__libstl}" OR EXISTS "${__libsupcxx}") )
@@ -1616,6 +1618,13 @@ macro( ANDROID_GET_ABI_RAWNAME TOOLCHAIN_FLAG VAR )
   set( ${VAR} "x86" )
   set( ${VAR} "x86" )
  elseif( "${TOOLCHAIN_FLAG}" STREQUAL "MIPS" )
  elseif( "${TOOLCHAIN_FLAG}" STREQUAL "MIPS" )
   set( ${VAR} "mips" )
   set( ${VAR} "mips" )
+# Urho3D: merged from gongminmin's PR
+ elseif( "${TOOLCHAIN_FLAG}" STREQUAL "ARM64_V8A" )
+  set( ${VAR} "arm64-v8a" )
+ elseif( "${TOOLCHAIN_FLAG}" STREQUAL "X86_64" )
+  set( ${VAR} "x86_64" )
+ elseif( "${TOOLCHAIN_FLAG}" STREQUAL "MIPS64" )
+  set( ${VAR} "mips64" )
  else()
  else()
   set( ${VAR} "unknown" )
   set( ${VAR} "unknown" )
  endif()
  endif()