Просмотр исходного кода

Android: Add Clang -target option for current ABI

Brad King 9 лет назад
Родитель
Сommit
d1e3cec2aa

+ 9 - 0
Modules/Platform/Android-Clang.cmake

@@ -36,8 +36,17 @@ endif()
 
 include(Platform/Android-Common)
 
+# The NDK toolchain configuration files at:
+#
+#   <ndk>/[build/core/]toolchains/*-clang*/setup.mk
+#
+# contain logic to set LLVM_TRIPLE for Clang-based toolchains for each target.
+# We need to produce the same target here to produce compatible binaries.
 include(Platform/Android/abi-${CMAKE_ANDROID_ARCH_ABI}-Clang)
 
 macro(__android_compiler_clang lang)
   __android_compiler_common(${lang})
+  if(NOT CMAKE_${lang}_COMPILER_TARGET)
+    set(CMAKE_${lang}_COMPILER_TARGET "${_ANDROID_ABI_CLANG_TARGET}")
+  endif()
 endmacro()

+ 1 - 0
Modules/Platform/Android/abi-arm64-v8a-Clang.cmake

@@ -1,2 +1,3 @@
 # <ndk>/build/core/toolchains/aarch64-linux-android-clang/setup.mk
+set(_ANDROID_ABI_CLANG_TARGET "aarch64-none-linux-android")
 include(Platform/Android/abi-common-Clang)

+ 1 - 0
Modules/Platform/Android/abi-armeabi-Clang.cmake

@@ -1,2 +1,3 @@
 # <ndk>/build/core/toolchains/arm-linux-androideabi-clang/setup.mk
+set(_ANDROID_ABI_CLANG_TARGET "armv5te-none-linux-androideabi")
 include(Platform/Android/abi-common-Clang)

+ 1 - 0
Modules/Platform/Android/abi-armeabi-v6-Clang.cmake

@@ -1,2 +1,3 @@
 # <ndk>/build/core/toolchains/arm-linux-androideabi-clang/setup.mk
+set(_ANDROID_ABI_CLANG_TARGET "armv6-none-linux-androideabi")
 include(Platform/Android/abi-common-Clang)

+ 1 - 0
Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake

@@ -1,2 +1,3 @@
 # <ndk>/build/core/toolchains/arm-linux-androideabi-clang/setup.mk
+set(_ANDROID_ABI_CLANG_TARGET "armv7-none-linux-androideabi")
 include(Platform/Android/abi-common-Clang)

+ 1 - 0
Modules/Platform/Android/abi-mips-Clang.cmake

@@ -1,2 +1,3 @@
 # <ndk>/build/core/toolchains/mipsel-linux-android-clang/setup.mk
+set(_ANDROID_ABI_CLANG_TARGET "mipsel-none-linux-android")
 include(Platform/Android/abi-common-Clang)

+ 1 - 0
Modules/Platform/Android/abi-mips64-Clang.cmake

@@ -1,2 +1,3 @@
 # <ndk>/build/core/toolchains/mips64el-linux-android-clang/setup.mk
+set(_ANDROID_ABI_CLANG_TARGET "mips64el-none-linux-android")
 include(Platform/Android/abi-common-Clang)

+ 1 - 0
Modules/Platform/Android/abi-x86-Clang.cmake

@@ -1,2 +1,3 @@
 # <ndk>/build/core/toolchains/x86-clang/setup.mk
+set(_ANDROID_ABI_CLANG_TARGET "i686-none-linux-android")
 include(Platform/Android/abi-common-Clang)

+ 1 - 0
Modules/Platform/Android/abi-x86_64-Clang.cmake

@@ -1,2 +1,3 @@
 # <ndk>/build/core/toolchains/x86_64-clang/setup.mk
+set(_ANDROID_ABI_CLANG_TARGET "x86_64-none-linux-android")
 include(Platform/Android/abi-common-Clang)