From 61f7ab42feaabd5bca4f38a47f218203d19b3a6c Mon Sep 17 00:00:00 2001 From: A2va <49582555+A2va@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:01:02 +0200 Subject: [PATCH 1/5] Add runtimes only if the ndk version is low enough and a warning, if the current config have a deprecated runtime --- xmake/toolchains/ndk/load.lua | 11 +++++++++++ xmake/toolchains/ndk/xmake.lua | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/xmake/toolchains/ndk/load.lua b/xmake/toolchains/ndk/load.lua index 98c08faa56a..913e89d025f 100644 --- a/xmake/toolchains/ndk/load.lua +++ b/xmake/toolchains/ndk/load.lua @@ -93,6 +93,13 @@ function main(toolchain) toolchain:set("toolset", "ranlib", gcc_toolchain_bin and path.join(gcc_toolchain_bin, cross .. "ranlib") or (cross .. "ranlib")) toolchain:set("toolset", "strip", gcc_toolchain_bin and path.join(gcc_toolchain_bin, cross .. "strip") or (cross .. "strip"), "llvm-strip") + -- gnustl and stlport have been removed in ndk r18 (deprecated in ndk r17) + -- https://github.com/android/ndk/wiki/Changelog-r18 + local old_runtimes = {"gnustl_static", "gnustl_shared", "stlport_static", "stlport_shared"} + if ndk_sdkver < 18 then + toolchain:add("runtimes", tabl.unpack(old_runtimes)) + end + -- init flags local arm32 = false local arch = toolchain:arch() @@ -213,6 +220,10 @@ function main(toolchain) local cxxstl_sdkdir = nil local ndk_cxxstl = config.get("runtimes") or config.get("ndk_cxxstl") if ndk_cxxstl then + if (ndk_sdkver >= 18) and table.contains(old_runtimes, ndk_cxxstl) then + utils.warning("%s is was removed in ndk v%s", ndk_cxxstl, ndk_sdkver) + end + if ndk_cxxstl:find(",", 1, true) then local runtimes_supported = hashset.from(toolchain:get("runtimes")) for _, item in ipairs(ndk_cxxstl:split(",")) do diff --git a/xmake/toolchains/ndk/xmake.lua b/xmake/toolchains/ndk/xmake.lua index 108d522755e..4f50f95cb61 100644 --- a/xmake/toolchains/ndk/xmake.lua +++ b/xmake/toolchains/ndk/xmake.lua @@ -33,7 +33,7 @@ toolchain("ndk") set_kind("standalone") set_homepage("https://developer.android.com/ndk") set_description("Android NDK") - set_runtimes("c++_static", "c++_shared", "gnustl_static", "gnustl_shared", "stlport_static", "stlport_shared") + set_runtimes("c++_static", "c++_shared") on_check("check") on_load("load") From 2a1bdf5e6fe01ed901eaa7d17528fc4a85daa7ad Mon Sep 17 00:00:00 2001 From: A2va <49582555+A2va@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:53:33 +0200 Subject: [PATCH 2/5] Fix version comp --- xmake/toolchains/ndk/load.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xmake/toolchains/ndk/load.lua b/xmake/toolchains/ndk/load.lua index 913e89d025f..bf72eaa8746 100644 --- a/xmake/toolchains/ndk/load.lua +++ b/xmake/toolchains/ndk/load.lua @@ -20,6 +20,7 @@ -- imports import("core.base.hashset") +import("core.base.semver") import("core.project.config") -- get triple @@ -96,7 +97,7 @@ function main(toolchain) -- gnustl and stlport have been removed in ndk r18 (deprecated in ndk r17) -- https://github.com/android/ndk/wiki/Changelog-r18 local old_runtimes = {"gnustl_static", "gnustl_shared", "stlport_static", "stlport_shared"} - if ndk_sdkver < 18 then + if ndk_sdkver and semver.new(ndk_sdkver):le("r18") then toolchain:add("runtimes", tabl.unpack(old_runtimes)) end @@ -220,7 +221,7 @@ function main(toolchain) local cxxstl_sdkdir = nil local ndk_cxxstl = config.get("runtimes") or config.get("ndk_cxxstl") if ndk_cxxstl then - if (ndk_sdkver >= 18) and table.contains(old_runtimes, ndk_cxxstl) then + if (ndk_sdkver and semver.new(ndk_sdkver):ge("r18")) and table.contains(old_runtimes, ndk_cxxstl) then utils.warning("%s is was removed in ndk v%s", ndk_cxxstl, ndk_sdkver) end From 98683d158a99d58810f42aff06c5fc43dd190d6e Mon Sep 17 00:00:00 2001 From: A2va <49582555+A2va@users.noreply.github.com> Date: Tue, 3 Sep 2024 18:08:55 +0200 Subject: [PATCH 3/5] Update load.lua --- xmake/toolchains/ndk/load.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xmake/toolchains/ndk/load.lua b/xmake/toolchains/ndk/load.lua index bf72eaa8746..f7caa3895da 100644 --- a/xmake/toolchains/ndk/load.lua +++ b/xmake/toolchains/ndk/load.lua @@ -97,8 +97,8 @@ function main(toolchain) -- gnustl and stlport have been removed in ndk r18 (deprecated in ndk r17) -- https://github.com/android/ndk/wiki/Changelog-r18 local old_runtimes = {"gnustl_static", "gnustl_shared", "stlport_static", "stlport_shared"} - if ndk_sdkver and semver.new(ndk_sdkver):le("r18") then - toolchain:add("runtimes", tabl.unpack(old_runtimes)) + if ndk_sdkver and semver.new(ndk_sdkver):le("r18") then + toolchain:add("runtimes", table.unpack(old_runtimes)) end -- init flags From 567389c2925f8e7de3058ed295699e8b75155925 Mon Sep 17 00:00:00 2001 From: A2va <49582555+A2va@users.noreply.github.com> Date: Tue, 3 Sep 2024 18:58:32 +0200 Subject: [PATCH 4/5] Fix semver format --- xmake/toolchains/ndk/load.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xmake/toolchains/ndk/load.lua b/xmake/toolchains/ndk/load.lua index f7caa3895da..9615a68dd1b 100644 --- a/xmake/toolchains/ndk/load.lua +++ b/xmake/toolchains/ndk/load.lua @@ -97,7 +97,7 @@ function main(toolchain) -- gnustl and stlport have been removed in ndk r18 (deprecated in ndk r17) -- https://github.com/android/ndk/wiki/Changelog-r18 local old_runtimes = {"gnustl_static", "gnustl_shared", "stlport_static", "stlport_shared"} - if ndk_sdkver and semver.new(ndk_sdkver):le("r18") then + if ndk_sdkver and semver.new(format("%s.0.0", ndk_sdkver)):le("18.0.0") then toolchain:add("runtimes", table.unpack(old_runtimes)) end @@ -221,7 +221,7 @@ function main(toolchain) local cxxstl_sdkdir = nil local ndk_cxxstl = config.get("runtimes") or config.get("ndk_cxxstl") if ndk_cxxstl then - if (ndk_sdkver and semver.new(ndk_sdkver):ge("r18")) and table.contains(old_runtimes, ndk_cxxstl) then + if (ndk_sdkver and semver.new(format("%s.0.0", ndk_sdkver)):ge("18.0.0")) and table.contains(old_runtimes, ndk_cxxstl) then utils.warning("%s is was removed in ndk v%s", ndk_cxxstl, ndk_sdkver) end From 124001b3ac745f35631793877b608970831577f6 Mon Sep 17 00:00:00 2001 From: A2va <49582555+A2va@users.noreply.github.com> Date: Wed, 4 Sep 2024 10:16:11 +0200 Subject: [PATCH 5/5] Fix confusion between ndk_sdkver and ndkver --- xmake/toolchains/ndk/load.lua | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/xmake/toolchains/ndk/load.lua b/xmake/toolchains/ndk/load.lua index 9615a68dd1b..6e702fc9c97 100644 --- a/xmake/toolchains/ndk/load.lua +++ b/xmake/toolchains/ndk/load.lua @@ -20,7 +20,6 @@ -- imports import("core.base.hashset") -import("core.base.semver") import("core.project.config") -- get triple @@ -97,7 +96,7 @@ function main(toolchain) -- gnustl and stlport have been removed in ndk r18 (deprecated in ndk r17) -- https://github.com/android/ndk/wiki/Changelog-r18 local old_runtimes = {"gnustl_static", "gnustl_shared", "stlport_static", "stlport_shared"} - if ndk_sdkver and semver.new(format("%s.0.0", ndk_sdkver)):le("18.0.0") then + if ndkver and ndkver < 18 then toolchain:add("runtimes", table.unpack(old_runtimes)) end @@ -221,7 +220,7 @@ function main(toolchain) local cxxstl_sdkdir = nil local ndk_cxxstl = config.get("runtimes") or config.get("ndk_cxxstl") if ndk_cxxstl then - if (ndk_sdkver and semver.new(format("%s.0.0", ndk_sdkver)):ge("18.0.0")) and table.contains(old_runtimes, ndk_cxxstl) then + if (ndkver and ndkver >= 18) and table.contains(old_runtimes, ndk_cxxstl) then utils.warning("%s is was removed in ndk v%s", ndk_cxxstl, ndk_sdkver) end