summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-06-22 22:57:34 +0800
committerruki <[email protected]>2018-06-22 11:45:24 +0800
commit0c615084d9d02daf7851e41bf2cf2ee55aa02824 (patch)
treee8108c385e36bb56debf76e19e951d4afe1ace3b
parent8cffaa773fe48eaf4afe957ff09f8d80f88f68ca (diff)
improve mingw platform
-rw-r--r--xmake/actions/config/xmake.lua4
-rw-r--r--xmake/platforms/android/check.lua14
-rw-r--r--xmake/platforms/checker.lua2
-rw-r--r--xmake/platforms/cross/check.lua11
-rw-r--r--xmake/platforms/cross/load.lua6
-rw-r--r--xmake/platforms/linux/check.lua4
-rw-r--r--xmake/platforms/linux/load.lua2
-rw-r--r--xmake/platforms/mingw/check.lua11
-rw-r--r--xmake/platforms/mingw/load.lua6
9 files changed, 43 insertions, 17 deletions
diff --git a/xmake/actions/config/xmake.lua b/xmake/actions/config/xmake.lua
index 3eee423b7..a19d7140a 100644
--- a/xmake/actions/config/xmake.lua
+++ b/xmake/actions/config/xmake.lua
@@ -104,12 +104,12 @@ task("config")
, ".e.g"
, " - i386-mingw32-"
, " - arm-linux-androideabi-" }
- , {nil, "toolchains", "kv", nil, "The Cross Toolchains Directory"
+ , {nil, "bin", "kv", nil, "The Cross Toolchains Bin Directory"
, ".e.g"
, " - sdk/bin (/arm-linux-gcc ..)" }
, {nil, "sdk", "kv", nil, "The Cross SDK Directory"
, ".e.g"
- , " - sdk/bin (toolchains)"
+ , " - sdk/bin"
, " - sdk/lib"
, " - sdk/include" }
diff --git a/xmake/platforms/android/check.lua b/xmake/platforms/android/check.lua
index 530231371..64f487693 100644
--- a/xmake/platforms/android/check.lua
+++ b/xmake/platforms/android/check.lua
@@ -67,23 +67,23 @@ end
-- check toolchains
function _check_toolchains(config)
- -- get toolchains directory
- local toolchains = config.get("toolchains")
- if not toolchains then
+ -- get toolchain bin directory
+ local bindir = config.get("bin")
+ if not bindir then
-- find first toolchains
for _, toolchains in ipairs(find_ndk(config.get("ndk"), config.get("arch"))) do
- config.set("toolchains", toolchains.bin)
+ config.set("bin", toolchains.bin)
config.set("cross", toolchains.cross)
break
end
end
- toolchains = config.get("toolchains")
+ bindir = config.get("bin")
-- get toolchains version
local toolchains_ver = config.get("toolchains_ver")
- if not toolchains_ver and toolchains then
- local toolchains_ver = toolchains:match("%-(%d*%.%d*)[/\\]")
+ if not toolchains_ver and bindir then
+ local toolchains_ver = bindir:match("%-(%d*%.%d*)[/\\]")
if toolchains_ver then
-- save the toolchains version
diff --git a/xmake/platforms/checker.lua b/xmake/platforms/checker.lua
index 46b45b582..2d9d790b0 100644
--- a/xmake/platforms/checker.lua
+++ b/xmake/platforms/checker.lua
@@ -47,7 +47,7 @@ function _toolchain_check(config, toolkind, toolinfo)
-- attempt to check it
if not program then
- local tool = find_tool(name, {program = cross .. name, pathes = config.get("toolchains"), check = toolinfo.check})
+ local tool = find_tool(name, {program = cross .. name, pathes = config.get("bin"), check = toolinfo.check})
if tool then
program = tool.program
end
diff --git a/xmake/platforms/cross/check.lua b/xmake/platforms/cross/check.lua
index d05a8f492..7cfc02190 100644
--- a/xmake/platforms/cross/check.lua
+++ b/xmake/platforms/cross/check.lua
@@ -46,11 +46,18 @@ function _toolchains(config)
-- find cross toolchain
local cross = ""
- local toolchain = find_cross_toolchain(config.get("sdk") or config.get("toolchains"), {bin = config.get("toolchains"), cross = config.get("cross")})
+ local toolchain = find_cross_toolchain(config.get("sdk") or config.get("bin"), {bin = config.get("bin"), cross = config.get("cross")})
if toolchain then
+
+ -- save toolchain
config.set("cross", toolchain.cross, {readonly = true, force = true})
- config.set("toolchains", toolchain.bin, {readonly = true, force = true})
+ config.set("bin", toolchain.bin, {readonly = true, force = true})
cross = toolchain.cross
+
+ -- add bin search library for loading some dependent .dll files windows
+ if toolchain.bin and is_host("windows") then
+ os.addenv("PATH", toolchain.bin)
+ end
end
-- init toolchains
diff --git a/xmake/platforms/cross/load.lua b/xmake/platforms/cross/load.lua
index 60db4b19e..67856712c 100644
--- a/xmake/platforms/cross/load.lua
+++ b/xmake/platforms/cross/load.lua
@@ -35,6 +35,12 @@ function main()
_g.linkdirs = {path.join(sdkdir, "lib")}
end
+ -- add bin search library for loading some dependent .dll files windows
+ local bindir = config.get("bin")
+ if bindir and is_host("windows") then
+ os.addenv("PATH", bindir)
+ end
+
-- ok
return _g
end
diff --git a/xmake/platforms/linux/check.lua b/xmake/platforms/linux/check.lua
index 0910ff86b..5c52b877f 100644
--- a/xmake/platforms/linux/check.lua
+++ b/xmake/platforms/linux/check.lua
@@ -51,10 +51,10 @@ function _toolchains(config)
-- find cross toolchain
local cross = ""
- local toolchain = find_cross_toolchain(config.get("sdk") or config.get("toolchains"), {bin = config.get("toolchains"), cross = config.get("cross")})
+ local toolchain = find_cross_toolchain(config.get("sdk") or config.get("bin"), {bin = config.get("bin"), cross = config.get("cross")})
if toolchain then
config.set("cross", toolchain.cross, {readonly = true, force = true})
- config.set("toolchains", toolchain.bin, {readonly = true, force = true})
+ config.set("bin", toolchain.bin, {readonly = true, force = true})
cross = toolchain.cross
end
diff --git a/xmake/platforms/linux/load.lua b/xmake/platforms/linux/load.lua
index 5710b09d8..95cb376cf 100644
--- a/xmake/platforms/linux/load.lua
+++ b/xmake/platforms/linux/load.lua
@@ -29,7 +29,7 @@ import("core.project.config")
function main()
-- cross toolchains?
- if config.get("cross") or config.get("toolchains") or config.get("sdk") then
+ if config.get("cross") or config.get("bin") or config.get("sdk") then
-- init linkdirs and includedirs
local sdkdir = config.get("sdk")
diff --git a/xmake/platforms/mingw/check.lua b/xmake/platforms/mingw/check.lua
index 0b2c2b870..36d0dc4be 100644
--- a/xmake/platforms/mingw/check.lua
+++ b/xmake/platforms/mingw/check.lua
@@ -42,11 +42,18 @@ function _toolchains(config)
-- find cross toolchain
local cross = ""
- local toolchain = find_cross_toolchain(config.get("sdk") or config.get("toolchains"), {bin = config.get("toolchains"), cross = config.get("cross")})
+ local toolchain = find_cross_toolchain(config.get("sdk") or config.get("bin"), {bin = config.get("bin"), cross = config.get("cross")})
if toolchain then
+
+ -- save toolchain
config.set("cross", toolchain.cross, {readonly = true, force = true})
- config.set("toolchains", toolchain.bin, {readonly = true, force = true})
+ config.set("bin", toolchain.bin, {readonly = true, force = true})
cross = toolchain.cross
+
+ -- add bin search library for loading some dependent .dll files windows
+ if toolchain.bin and is_host("windows") then
+ os.addenv("PATH", toolchain.bin)
+ end
end
-- make toolchains
diff --git a/xmake/platforms/mingw/load.lua b/xmake/platforms/mingw/load.lua
index af02d4403..58ff46c0e 100644
--- a/xmake/platforms/mingw/load.lua
+++ b/xmake/platforms/mingw/load.lua
@@ -49,6 +49,12 @@ function main()
_g.linkdirs = {path.join(sdkdir, "lib")}
end
+ -- add bin search library for loading some dependent .dll files windows
+ local bindir = config.get("bin")
+ if bindir and is_host("windows") then
+ os.addenv("PATH", bindir)
+ end
+
-- ok
return _g
end