diff options
| author | ruki <[email protected]> | 2019-04-18 23:13:52 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-04-18 13:23:17 +0800 |
| commit | cb61dab34920dc572730f595ded00476801e61e7 (patch) | |
| tree | 2b286a92207469d83cb5b3dc886ae440abdfecf4 | |
| parent | 69b9445166ac215b6c40970895d6b8600a55846d (diff) | |
improve find_ndk for x86
| -rw-r--r-- | xmake/modules/detect/sdks/find_ndk.lua | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/xmake/modules/detect/sdks/find_ndk.lua b/xmake/modules/detect/sdks/find_ndk.lua index d90780295..711af1e04 100644 --- a/xmake/modules/detect/sdks/find_ndk.lua +++ b/xmake/modules/detect/sdks/find_ndk.lua @@ -80,16 +80,36 @@ function _find_ndk(sdkdir, arch, ndk_sdkver, ndk_toolchains_ver) return {} end - -- is arm64? - local arm64 = arch and arch:startswith("arm64") + -- get cross + local crosses = + { + ["armv5te"] = "arm-linux-androideabi-" + , ["armv7-a"] = "arm-linux-androideabi-" + , ["arm64-v8a"] = "aarch64-linux-android-" + , i386 = "i686-linux-android-" + , x86_64 = "x86_64-linux-android-" + , mips = "mips-linux-android-" + , mips64 = "mips64-linux-android-" + } + local cross = crosses[arch] - -- the cross - local cross = arm64 and "aarch64-linux-android-" or "arm-linux-androideabi-" + -- get gcc toolchain sub-directory + local gcc_toolchain_subdirs = + { + ["armv5te"] = "arm-linux-androideabi-*" + , ["armv7-a"] = "arm-linux-androideabi-*" + , ["arm64-v8a"] = "aarch64-linux-android-*" + , i386 = "x86-*" + , x86_64 = "x86_64-*" + , mips = "mipsel-linux-android-*" + , mips64 = "mips64el-linux-android-*" + } + local gcc_toolchain_subdir = gcc_toolchain_subdirs[arch] or "arm-linux-androideabi-*" -- find the binary directory local bindir = find_directory("bin", path.join(sdkdir, "toolchains", "llvm", "prebuilt", "*")) -- larger than ndk r16 if not bindir then - bindir = find_directory("bin", path.join(sdkdir, "toolchains", cross .. "*", "prebuilt", "*")) + bindir = find_directory("bin", path.join(sdkdir, "toolchains", gcc_toolchain_subdir, "prebuilt", "*")) end if not bindir then return {} @@ -102,7 +122,7 @@ function _find_ndk(sdkdir, arch, ndk_sdkver, ndk_toolchains_ver) end -- find the gcc toolchain - local gcc_toolchain = find_directory("bin", path.join(sdkdir, "toolchains", cross .. "*", "prebuilt", "*")) + local gcc_toolchain = find_directory("bin", path.join(sdkdir, "toolchains", gcc_toolchain_subdir, "prebuilt", "*")) if gcc_toolchain then gcc_toolchain = path.directory(gcc_toolchain) end |
