diff options
| author | ruki <[email protected]> | 2025-07-17 00:32:36 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2025-07-17 00:32:36 +0800 |
| commit | da382652ef63d8c5e4761b78c5b05c1eecf38abc (patch) | |
| tree | 4dfa63c3dedac731be02d41beba5d05e0767e03c | |
| parent | 1787b90a210a63384eac7c99cdcb31c22a3b24ac (diff) | |
improve ndk
| -rw-r--r-- | xmake/toolchains/ndk/load.lua | 21 |
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 |
