diff options
| author | ruki <[email protected]> | 2025-10-16 22:52:54 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2025-10-16 22:52:54 +0800 |
| commit | 61dda4e81f4c4328f49eaa439dd6fca4f94954a3 (patch) | |
| tree | 60456450989c81cc3eefbc6b1935812c56413866 /xmake/toolchains | |
| parent | 014e5b8b3e1078fc42a06e8eeecd2be1ad26a8a7 (diff) | |
improve old ndk to support gcc
Diffstat (limited to 'xmake/toolchains')
| -rw-r--r-- | xmake/toolchains/ndk/check.lua | 1 | ||||
| -rw-r--r-- | xmake/toolchains/ndk/load.lua | 23 |
2 files changed, 17 insertions, 7 deletions
diff --git a/xmake/toolchains/ndk/check.lua b/xmake/toolchains/ndk/check.lua index 2845623c1..dc929085e 100644 --- a/xmake/toolchains/ndk/check.lua +++ b/xmake/toolchains/ndk/check.lua @@ -43,6 +43,7 @@ function _check_ndk(toolchain) ndk = find_ndk(toolchain:config("ndk") or config.get("ndk"), {force = true, verbose = true, plat = toolchain:plat(), arch = toolchain:arch(), + compiler = toolchain:config("gcc") and "gcc" or "clang", sdkver = toolchain:config("sdkver")}) end if ndk then diff --git a/xmake/toolchains/ndk/load.lua b/xmake/toolchains/ndk/load.lua index 5a3c0ed4d..cee7f8c3e 100644 --- a/xmake/toolchains/ndk/load.lua +++ b/xmake/toolchains/ndk/load.lua @@ -85,16 +85,25 @@ function main(toolchain) local ndk_sdkver = toolchain:config("ndk_sdkver") -- set toolset - toolchain:set("toolset", "cc", "clang", cross .. "gcc") - toolchain:set("toolset", "cxx", "clang++", cross .. "g++") - toolchain:set("toolset", "cpp", "clang -E", cross .. "gcc -E") - toolchain:set("toolset", "as", "clang", cross .. "gcc") - toolchain:set("toolset", "ld", "clang++", "clang", cross .. "g++", cross .. "gcc") - toolchain:set("toolset", "sh", "clang++", "clang", cross .. "g++", cross .. "gcc") + local use_gcc = toolchain:config("gcc") + if use_gcc then + toolchain:set("toolset", "cc", cross .. "gcc") + toolchain:set("toolset", "cxx", cross .. "g++") + toolchain:set("toolset", "cpp", cross .. "gcc -E") + toolchain:set("toolset", "as", cross .. "gcc") + toolchain:set("toolset", "ld", cross .. "g++", cross .. "gcc") + toolchain:set("toolset", "sh", cross .. "g++", cross .. "gcc") + else + toolchain:set("toolset", "cc", "clang", cross .. "gcc") + toolchain:set("toolset", "cxx", "clang++", cross .. "g++") + toolchain:set("toolset", "cpp", "clang -E", cross .. "gcc -E") + toolchain:set("toolset", "as", "clang", cross .. "gcc") + toolchain:set("toolset", "ld", "clang++", "clang", cross .. "g++", cross .. "gcc") + toolchain:set("toolset", "sh", "clang++", "clang", cross .. "g++", cross .. "gcc") + end toolchain:set("toolset", "ar", gcc_toolchain_bin and path.join(gcc_toolchain_bin, cross .. "ar") or (cross .. "ar"), "llvm-ar") 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"} |
