diff options
| author | ruki <[email protected]> | 2020-11-13 22:37:49 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-11-13 22:37:49 +0800 |
| commit | 7d74ef63935e4294c5b5ed71a15f67eb7211cbea (patch) | |
| tree | 7dea4d6a86f43485ae5e9a7d87b70ab464eed0e6 | |
| parent | 2c21924f4a970cfabaac8bf589376e16656f5d46 (diff) | |
improve toolchain
| -rw-r--r-- | xmake/core/tool/toolchain.lua | 2 | ||||
| -rw-r--r-- | xmake/toolchains/cross/load.lua | 26 |
2 files changed, 17 insertions, 11 deletions
diff --git a/xmake/core/tool/toolchain.lua b/xmake/core/tool/toolchain.lua index 3a971362d..cb8ea0827 100644 --- a/xmake/core/tool/toolchain.lua +++ b/xmake/core/tool/toolchain.lua @@ -155,6 +155,8 @@ end -- get the program and name of the given tool kind function _instance:tool(toolkind) + -- ensure to do load for initializing toolset first + self:_load() local toolpaths = self:get("toolset." .. toolkind) if toolpaths then for _, toolpath in ipairs(table.wrap(toolpaths)) do diff --git a/xmake/toolchains/cross/load.lua b/xmake/toolchains/cross/load.lua index d8b38323c..e626ad75c 100644 --- a/xmake/toolchains/cross/load.lua +++ b/xmake/toolchains/cross/load.lua @@ -30,17 +30,21 @@ function main(toolchain) -- get cross prefix local cross = toolchain:cross() or "" - -- set toolset - toolchain:set("toolset", "cc", cross .. "gcc", cross .. "clang") - toolchain:set("toolset", "cxx", cross .. "gcc", cross .. "clang", cross .. "g++", cross .. "clang++") - toolchain:set("toolset", "cpp", cross .. "gcc -E", cross .. "clang -E") - toolchain:set("toolset", "as", cross .. "gcc", cross .. "clang") - toolchain:set("toolset", "ld", cross .. "g++", cross .. "gcc", cross .. "clang++", cross .. "clang") - toolchain:set("toolset", "sh", cross .. "g++", cross .. "gcc", cross .. "clang++", cross .. "clang") - toolchain:set("toolset", "ar", cross .. "ar") - toolchain:set("toolset", "ex", cross .. "ar") - toolchain:set("toolset", "ranlib", cross .. "ranlib") - toolchain:set("toolset", "strip", cross .. "strip") + -- add toolset + -- + -- @note we use add/toolset for cross toolchain, because user maybe use set_toolset to modify them + -- @see https://github.com/xmake-io/xmake/issues/1024 + -- + toolchain:add("toolset", "cc", cross .. "gcc", cross .. "clang") + toolchain:add("toolset", "cxx", cross .. "gcc", cross .. "clang", cross .. "g++", cross .. "clang++") + toolchain:add("toolset", "cpp", cross .. "gcc -E", cross .. "clang -E") + toolchain:add("toolset", "as", cross .. "gcc", cross .. "clang") + toolchain:add("toolset", "ld", cross .. "g++", cross .. "gcc", cross .. "clang++", cross .. "clang") + toolchain:add("toolset", "sh", cross .. "g++", cross .. "gcc", cross .. "clang++", cross .. "clang") + toolchain:add("toolset", "ar", cross .. "ar") + toolchain:add("toolset", "ex", cross .. "ar") + toolchain:add("toolset", "ranlib", cross .. "ranlib") + toolchain:add("toolset", "strip", cross .. "strip") -- add bin search library for loading some dependent .dll files windows local bindir = toolchain:bindir() |
