summaryrefslogtreecommitdiff
path: root/xmake/platforms/android/load.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2019-04-18 22:59:52 +0800
committerruki <[email protected]>2019-04-18 11:59:18 +0800
commit69b9445166ac215b6c40970895d6b8600a55846d (patch)
tree9eb771d61865e579ae0e454ec16c5688f40bab7d /xmake/platforms/android/load.lua
parentfe7395793bf186b54c6ccb777b9086a9e2b5d2e9 (diff)
improve qt rule for android
Diffstat (limited to 'xmake/platforms/android/load.lua')
-rw-r--r--xmake/platforms/android/load.lua50
1 files changed, 32 insertions, 18 deletions
diff --git a/xmake/platforms/android/load.lua b/xmake/platforms/android/load.lua
index b7ac74856..94212458c 100644
--- a/xmake/platforms/android/load.lua
+++ b/xmake/platforms/android/load.lua
@@ -85,6 +85,19 @@ function main(platform)
local ndk_sdkver = config.get("ndk_sdkver")
if ndk and ndk_sdkver then
+ -- the sysroot archs
+ local sysroot_archs =
+ {
+ ["armv5te"] = "arch-arm"
+ , ["armv7-a"] = "arch-arm"
+ , ["arm64-v8a"] = "arch-arm64"
+ , i386 = "arch-x86"
+ , x86_64 = "arch-x86_64"
+ , mips = "arch-mips"
+ , mips64 = "arch-mips64"
+ }
+ local sysroot_arch = sysroot_archs[arch]
+
-- add sysroot
--
-- @see https://android.googlesource.com/platform/ndk/+/master/docs/UnifiedHeaders.md
@@ -111,8 +124,10 @@ function main(platform)
["armv5te"] = "arm-linux-androideabi"
, ["armv7-a"] = "arm-linux-androideabi"
, ["arm64-v8a"] = "aarch64-linux-android"
- , ["i386"] = "i686-linux-android"
- , ["x86_64"] = "x86_64-linux-android"
+ , i386 = "i686-linux-android"
+ , x86_64 = "x86_64-linux-android"
+ , mips = "mips-linux-android"
+ , mips64 = "mips64-linux-android"
}
platform:add("cxflags", "-D__ANDROID_API__=" .. ndk_sdkver)
platform:add("asflags", "-D__ANDROID_API__=" .. ndk_sdkver)
@@ -123,22 +138,15 @@ function main(platform)
platform:add("cxxflags","-isystem " .. path.join(ndk_sysroot_be_r14, "usr", "include", triples[arch]))
platform:add("asflags", "-isystem " .. path.join(ndk_sysroot_be_r14, "usr", "include", triples[arch]))
else
- if arch:startswith("arm64") then
- platform:add("cflags", format("--sysroot=%s/arch-arm64", ndk_sdkdir))
- platform:add("cxxflags", format("--sysroot=%s/arch-arm64", ndk_sdkdir))
- platform:add("asflags", format("--sysroot=%s/arch-arm64", ndk_sdkdir))
- else
- platform:add("cflags", format("--sysroot=%s/arch-arm", ndk_sdkdir))
- platform:add("cxxflags", format("--sysroot=%s/arch-arm", ndk_sdkdir))
- platform:add("asflags", format("--sysroot=%s/arch-arm", ndk_sdkdir))
+ if sysroot_arch then
+ platform:add("cflags", format("--sysroot=%s/%s", ndk_sdkdir, sysroot_arch))
+ platform:add("cxxflags", format("--sysroot=%s/%s", ndk_sdkdir, sysroot_arch))
+ platform:add("asflags", format("--sysroot=%s/%s", ndk_sdkdir, sysroot_arch))
end
end
- if arch:startswith("arm64") then
- platform:add("ldflags", format("--sysroot=%s/arch-arm64", ndk_sdkdir))
- platform:add("shflags", format("--sysroot=%s/arch-arm64", ndk_sdkdir))
- else
- platform:add("ldflags", format("--sysroot=%s/arch-arm", ndk_sdkdir))
- platform:add("shflags", format("--sysroot=%s/arch-arm", ndk_sdkdir))
+ if sysroot_arch then
+ platform:add("ldflags", format("--sysroot=%s/%s", ndk_sdkdir, sysroot_arch))
+ platform:add("shflags", format("--sysroot=%s/%s", ndk_sdkdir, sysroot_arch))
end
-- add "-fPIE -pie" to ldflags
@@ -160,6 +168,10 @@ function main(platform)
["armv5te"] = "armeabi"
, ["armv7-a"] = "armeabi-v7a"
, ["arm64-v8a"] = "arm64-v8a"
+ , i386 = "x86"
+ , x86_64 = "x86_64"
+ , mips = "mips"
+ , mips64 = "mips64"
}
-- add search directories for c++ stl
@@ -194,7 +206,7 @@ function main(platform)
end
-- init targets for rust
- local targets =
+ local targets_rust =
{
["armv5te"] = "arm-linux-androideabi"
, ["armv7-a"] = "arm-linux-androideabi"
@@ -202,7 +214,9 @@ function main(platform)
}
-- init flags for rust
- platform:add("rcflags", "--target=" .. targets[arch])
+ if targets_rust[arch] then
+ platform:add("rcflags", "--target=" .. targets_rust[arch])
+ end
platform:add("rc-shflags", "-C link-args=\"" .. (table.concat(platform:get("shflags"), " "):gsub("%-march=.-%s", "") .. "\""))
platform:add("rc-ldflags", "-C link-args=\"" .. (table.concat(platform:get("ldflags"), " "):gsub("%-march=.-%s", "") .. "\""))
local sh = config.get("sh")