Browse Source

Android: Fatal if ABI is not supported by NDK

Haibo Huang 5 years ago
parent
commit
5c2f9e3eeb

+ 6 - 0
Modules/Platform/Android-Determine.cmake

@@ -353,6 +353,12 @@ if(NOT CMAKE_ANDROID_ARCH_ABI)
     endif()
     endif()
   endif()
   endif()
 endif()
 endif()
+if(_INCLUDED_ABIS AND NOT CMAKE_ANDROID_ARCH_ABI IN_LIST NDK_DEFAULT_ABIS)
+  message(FATAL_ERROR
+    "Android: ABI '${CMAKE_ANDROID_ARCH_ABI}' is not supported by the NDK.\n"
+    "Supported ABIS: ${NDK_DEFAULT_ABIS}."
+  )
+endif()
 set(CMAKE_ANDROID_ARCH "${_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_ARCH}")
 set(CMAKE_ANDROID_ARCH "${_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_ARCH}")
 if(_ANDROID_SYSROOT_ARCH AND NOT "x${_ANDROID_SYSROOT_ARCH}" STREQUAL "x${CMAKE_ANDROID_ARCH}")
 if(_ANDROID_SYSROOT_ARCH AND NOT "x${_ANDROID_SYSROOT_ARCH}" STREQUAL "x${CMAKE_ANDROID_ARCH}")
   message(FATAL_ERROR
   message(FATAL_ERROR

+ 1 - 1
Tests/RunCMake/Android/RunCMakeTest.cmake

@@ -157,7 +157,7 @@ foreach(ndk IN LISTS TEST_ANDROID_NDK)
 
 
   # Find a sysroot to test.
   # Find a sysroot to test.
   file(GLOB _sysroots "${ndk}/platforms/android-[0-9][0-9]/arch-arm")
   file(GLOB _sysroots "${ndk}/platforms/android-[0-9][0-9]/arch-arm")
-  if(_sysroots)
+  if(_sysroots AND "armeabi" IN_LIST _abis_)
     list(GET _sysroots 0 _sysroot)
     list(GET _sysroots 0 _sysroot)
     set(RunCMake_TEST_OPTIONS
     set(RunCMake_TEST_OPTIONS
       -DCMAKE_SYSTEM_NAME=Android
       -DCMAKE_SYSTEM_NAME=Android