summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-07-17 00:32:36 +0800
committerruki <[email protected]>2025-07-17 00:32:36 +0800
commitda382652ef63d8c5e4761b78c5b05c1eecf38abc (patch)
tree4dfa63c3dedac731be02d41beba5d05e0767e03c
parent1787b90a210a63384eac7c99cdcb31c22a3b24ac (diff)
improve ndk
-rw-r--r--xmake/toolchains/ndk/load.lua21
1 files changed, 12 insertions, 9 deletions
diff --git a/xmake/toolchains/ndk/load.lua b/xmake/toolchains/ndk/load.lua
index 7ce959a09..22b7aa658 100644
--- a/xmake/toolchains/ndk/load.lua
+++ b/xmake/toolchains/ndk/load.lua
@@ -174,6 +174,7 @@ function main(toolchain)
local sysroot_arch = sysroot_archs[arch]
-- add sysroot flags
+ local sysroot_cflags_added = false
local ndk_sysroot = toolchain:config("ndk_sysroot")
if ndk_sysroot and os.isdir(ndk_sysroot) then
local triple = _get_triple(arch)
@@ -186,22 +187,24 @@ function main(toolchain)
toolchain:add("cflags", flag_sysroot)
toolchain:add("cxxflags", flag_sysroot)
toolchain:add("asflags", flag_sysroot)
- toolchain:add("shflags", flag_sysroot)
- toolchain:add("ldflags", flag_sysroot)
toolchain:add("cflags", flag_isystem)
toolchain:add("cxxflags", flag_isystem)
toolchain:add("asflags", flag_isystem)
- else
- local ndk_sdkdir = path.translate(format("%s/platforms/android-%d", ndk, ndk_sdkver))
- if os.isdir(ndk_sdkdir) then
- if sysroot_arch then
- local flag_sysroot = "--sysroot=" .. os.args(path.join(ndk_sdkdir, sysroot_arch))
+ sysroot_cflags_added = true
+ end
+ local ndk_sdkdir = path.translate(format("%s/platforms/android-%d", ndk, ndk_sdkver))
+ if os.isdir(ndk_sdkdir) then
+ if sysroot_arch then
+ local flag_sysroot = "--sysroot=" .. os.args(path.join(ndk_sdkdir, sysroot_arch))
+ if not sysroot_cflags_added then
toolchain:add("cflags", flag_sysroot)
toolchain:add("cxxflags", flag_sysroot)
toolchain:add("asflags", flag_sysroot)
- toolchain:add("ldflags", flag_sysroot)
- toolchain:add("shflags", flag_sysroot)
end
+ -- we need to add sysroot flags for low-version ndk
+ -- @see https://github.com/xmake-io/xmake/issues/6621
+ toolchain:add("ldflags", flag_sysroot)
+ toolchain:add("shflags", flag_sysroot)
end
end