summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-08-01 11:17:52 +0800
committerruki <[email protected]>2020-08-01 11:17:52 +0800
commitdb31246f1fa9d00cdc3d4bc5ed82213e46fa0d7d (patch)
tree12251502590f67d95c55ebce4e91b5ad8dd3b00d
parent02c25412e57a0719da2d7cd32654bb83d680bbf2 (diff)
fix custom toolchain
-rw-r--r--CHANGELOG.md2
-rw-r--r--xmake/core/tool/toolchain.lua13
2 files changed, 10 insertions, 5 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 713557c0c..1049db25d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@
### Bugs fixed
* [#903](https://github.com/xmake-io/xmake/issues/903): Fix install vcpkg packages fails
+* [#912](https://github.com/xmake-io/xmake/issues/912): Fix the custom toolchain
## v2.3.6
@@ -803,6 +804,7 @@
### Bugs修复
* [#903](https://github.com/xmake-io/xmake/issues/903): 修复vcpkg包安装失败问题
+* [#912](https://github.com/xmake-io/xmake/issues/912): 修复自定义工具链
## v2.3.6
diff --git a/xmake/core/tool/toolchain.lua b/xmake/core/tool/toolchain.lua
index ee8244819..0ed4bdc19 100644
--- a/xmake/core/tool/toolchain.lua
+++ b/xmake/core/tool/toolchain.lua
@@ -36,12 +36,12 @@ local sandbox = require("sandbox/sandbox")
local sandbox_module = require("sandbox/modules/import/core/sandbox/module")
-- new an instance
-function _instance.new(name, plat, arch, info)
+function _instance.new(name, info, plat, arch)
local instance = table.inherit(_instance)
instance._NAME = name
+ instance._INFO = info
instance._PLAT = plat
instance._ARCH = arch
- instance._INFO = info
return instance
end
@@ -424,14 +424,17 @@ function toolchain.load(name, opt)
end
-- save instance to the cache
- local instance = _instance.new(name, plat, arch, result)
+ local instance = _instance.new(name, result, plat, arch)
toolchain._TOOLCHAINS[cachekey] = instance
return instance
end
-- new toolchain
-function toolchain.new(name, info)
- return _instance.new(name, info)
+function toolchain.new(name, info, opt)
+ opt = opt or {}
+ local plat = opt.plat or config.get("plat") or os.host()
+ local arch = opt.arch or config.get("arch") or os.arch()
+ return _instance.new(name, info, plat, arch)
end
-- return module