summaryrefslogtreecommitdiff
path: root/xmake/platforms/android/xmake.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2016-11-02 13:05:19 +0800
committerruki <[email protected]>2016-11-02 13:05:19 +0800
commite747b0d8abc2ddb6aa2595e6a522eb29d3e7d2fd (patch)
treec23a305ac2fc2c46ef036795ed1cadea4f703f7a /xmake/platforms/android/xmake.lua
parent1fcfcb5ea078834548392177599a0a0340d20204 (diff)
add c++ stl search directories for android
Diffstat (limited to 'xmake/platforms/android/xmake.lua')
-rwxr-xr-xxmake/platforms/android/xmake.lua34
1 files changed, 34 insertions, 0 deletions
diff --git a/xmake/platforms/android/xmake.lua b/xmake/platforms/android/xmake.lua
index e07cb788a..7595d78c7 100755
--- a/xmake/platforms/android/xmake.lua
+++ b/xmake/platforms/android/xmake.lua
@@ -58,18 +58,24 @@ platform("android")
_g.asflags = {}
_g.ldflags = {"-llog"}
_g.shflags = {"-llog"}
+ _g.cxxflags = {}
else
_g.cxflags = { "-march=" .. arch, "-mthumb"}
_g.asflags = { "-march=" .. arch, "-mthumb"}
_g.ldflags = { "-march=" .. arch, "-llog", "-mthumb"}
_g.shflags = { "-march=" .. arch, "-llog", "-mthumb"}
+ _g.cxxflags = {}
end
-- add flags for the sdk directory of ndk
local ndk = config.get("ndk")
local ndk_sdkver = config.get("ndk_sdkver")
if ndk and ndk_sdkver then
+
+ -- get ndk sdk directory
local ndk_sdkdir = path.translate(format("%s/platforms/android-%d", ndk, ndk_sdkver))
+
+ -- add sysroot
if arch:startswith("arm64") then
insert(_g.cxflags, format("--sysroot=%s/arch-arm64", ndk_sdkdir))
insert(_g.asflags, format("--sysroot=%s/arch-arm64", ndk_sdkdir))
@@ -81,6 +87,34 @@ platform("android")
insert(_g.ldflags, format("--sysroot=%s/arch-arm", ndk_sdkdir))
insert(_g.shflags, format("--sysroot=%s/arch-arm", ndk_sdkdir))
end
+
+ -- only for c++ stl
+ local toolchains_ver = config.get("toolchains_ver")
+ if toolchains_ver then
+
+ -- get c++ stl sdk directory
+ local cxxstl_sdkdir = path.translate(format("%s/sources/cxx-stl/gnu-libstdc++/%s", ndk, toolchains_ver))
+
+ -- the toolchains archs
+ local toolchains_archs =
+ {
+ ["armv5te"] = "armeabi"
+ , ["armv6"] = "armeabi"
+ , ["armv7-a"] = "armeabi-v7a"
+ , ["armv8-a"] = "armeabi-v8a"
+ , ["arm64-v8a"] = "arm64-v8a"
+ }
+
+ -- add search directories for c++ stl
+ insert(_g.cxxflags, format("-I%s/include", cxxstl_sdkdir))
+ if toolchains_archs[arch] then
+ insert(_g.cxxflags, format("-I%s/libs/%s/include", cxxstl_sdkdir, toolchains_archs[arch]))
+ insert(_g.ldflags, format("-L%s/libs/%s", cxxstl_sdkdir, toolchains_archs[arch]))
+ insert(_g.shflags, format("-L%s/libs/%s", cxxstl_sdkdir, toolchains_archs[arch]))
+ insert(_g.ldflags, format("-lgnustl_static"))
+ insert(_g.shflags, format("-lgnustl_static"))
+ end
+ end
end
end)