Skip to content

Commit 8e8f6f6

Browse files
committed
Add riscv64 support for Android NDK projects
1 parent d58c9bc commit 8e8f6f6

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

Diff for: xmake/modules/detect/sdks/find_ndk.lua

+5-2
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ function _get_triple(arch)
3434
, ["armeabi"] = "arm-linux-androideabi" -- removed in ndk r17
3535
, ["armeabi-v7a"] = "arm-linux-androideabi"
3636
, ["arm64-v8a"] = "aarch64-linux-android"
37+
, ["riscv64"] = "riscv64-linux-android"
3738
, i386 = "i686-linux-android" -- deprecated
3839
, x86 = "i686-linux-android"
3940
, x86_64 = "x86_64-linux-android"
@@ -90,8 +91,8 @@ function _find_ndk_sdkver(sdkdir, bindir, sysroot, arch)
9091

9192
-- try to select the best compatible version
9293
local sdkver = "16"
93-
if use_llvm or arch == "arm64-v8a" then
94-
sdkver = "21"
94+
if use_llvm or arch == "arm64-v8a" or arch == "riscv64" then
95+
sdkver = (arch == "riscv64") and "35" or "21"
9596
end
9697
if sysroot then
9798
if os.isdir(path.join(sysroot, "usr", "lib", triple, sdkver)) then
@@ -170,6 +171,7 @@ function _find_ndk(sdkdir, arch, ndk_sdkver, ndk_toolchains_ver)
170171
, ["armeabi"] = "arm-linux-androideabi-" -- removed in ndk r17
171172
, ["armeabi-v7a"] = "arm-linux-androideabi-"
172173
, ["arm64-v8a"] = "aarch64-linux-android-"
174+
, ["riscv64"] = "riscv64-linux-android-"
173175
, i386 = "i686-linux-android-" -- deprecated
174176
, x86 = "i686-linux-android-"
175177
, x86_64 = "x86_64-linux-android-"
@@ -186,6 +188,7 @@ function _find_ndk(sdkdir, arch, ndk_sdkver, ndk_toolchains_ver)
186188
, ["armeabi"] = "arm-linux-androideabi-*"
187189
, ["armeabi-v7a"] = "arm-linux-androideabi-*"
188190
, ["arm64-v8a"] = "aarch64-linux-android-*"
191+
, ["riscv64"] = "riscv64-linux-android-*"
189192
, i386 = "x86-*"
190193
, x86 = "x86-*"
191194
, x86_64 = "x86_64-*"

Diff for: xmake/platforms/android/xmake.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ platform("android")
2929
-- @see https://developer.android.google.cn/ndk/guides/abis
3030
-- @note The NDK previously supported ARMv5 (armeabi) and 32-bit and 64-bit MIPS, but this support has been removed in NDK r17.
3131
--
32-
set_archs("armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64", "mips", "mip64")
32+
set_archs("armeabi", "armeabi-v7a", "arm64-v8a", "riscv64", "x86", "x86_64", "mips", "mip64")
3333

3434
set_formats("static", "lib$(name).a")
3535
set_formats("object", "$(name).o")

Diff for: xmake/toolchains/ndk/load.lua

+4
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ function _get_triple(arch)
3131
, ["armeabi"] = "arm-linux-androideabi" -- removed in ndk r17
3232
, ["armeabi-v7a"] = "arm-linux-androideabi"
3333
, ["arm64-v8a"] = "aarch64-linux-android"
34+
, ["riscv64"] = "riscv64-linux-android"
3435
, i386 = "i686-linux-android" -- deprecated
3536
, x86 = "i686-linux-android"
3637
, x86_64 = "x86_64-linux-android"
@@ -49,6 +50,7 @@ function _get_target(arch, ndk_sdkver)
4950
, ["armv7-a"] = "armv7-none-linux-androideabi" -- deprecated
5051
, ["armeabi-v7a"] = "armv7-none-linux-androideabi"
5152
, ["arm64-v8a"] = "aarch64-none-linux-android"
53+
, ["riscv64"] = "riscv64-none-linux-android"
5254
, ["i386"] = "i686-none-linux-android" -- deprecated
5355
, ["x86"] = "i686-none-linux-android"
5456
, ["x86_64"] = "x86_64-none-linux-android"
@@ -162,6 +164,7 @@ function main(toolchain)
162164
, ["armeabi"] = "arch-arm" -- removed in ndk r17
163165
, ["armeabi-v7a"] = "arch-arm"
164166
, ["arm64-v8a"] = "arch-arm64"
167+
, ["riscv64"] = "arch-riscv64"
165168
, i386 = "arch-x86" -- deprecated
166169
, x86 = "arch-x86"
167170
, x86_64 = "arch-x86_64"
@@ -264,6 +267,7 @@ function main(toolchain)
264267
, ["armeabi"] = "armeabi" -- removed in ndk r17
265268
, ["armeabi-v7a"] = "armeabi-v7a"
266269
, ["arm64-v8a"] = "arm64-v8a"
270+
, ["riscv64"] = "riscv64"
267271
, i386 = "x86" -- deprecated
268272
, x86 = "x86"
269273
, x86_64 = "x86_64"

0 commit comments

Comments
 (0)