diff options
| author | ruki <[email protected]> | 2020-05-30 00:39:28 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-05-29 21:56:48 +0800 |
| commit | 8ee95c16390e8dbac222d1c0e665eb7dc43cccc7 (patch) | |
| tree | e026f81a3b7799b9e17b330b5df34dfbb6685903 | |
| parent | 1b197180ae3bb6b7d04e95e532dcb7666345d724 (diff) | |
improve mingw toolchain
| -rw-r--r-- | xmake/core/tool/toolchain.lua | 1 | ||||
| -rw-r--r-- | xmake/toolchains/mingw/xmake.lua | 28 |
2 files changed, 19 insertions, 10 deletions
diff --git a/xmake/core/tool/toolchain.lua b/xmake/core/tool/toolchain.lua index 200d00b3a..7b0463b25 100644 --- a/xmake/core/tool/toolchain.lua +++ b/xmake/core/tool/toolchain.lua @@ -303,6 +303,7 @@ function toolchain.apis() -- toolchain.set_xxx "toolchain.set_formats" , "toolchain.set_toolsets" + , "toolchain.add_toolsets" -- toolchain.add_xxx , "toolchain.add_runenvs" } diff --git a/xmake/toolchains/mingw/xmake.lua b/xmake/toolchains/mingw/xmake.lua index c2d6c502c..a723bb7d5 100644 --- a/xmake/toolchains/mingw/xmake.lua +++ b/xmake/toolchains/mingw/xmake.lua @@ -54,16 +54,24 @@ toolchain("mingw") end -- set toolsets - toolchain:set("toolsets", "cc", cross .. "gcc") - toolchain:set("toolsets", "cxx", cross .. "gcc", cross .. "g++") - toolchain:set("toolsets", "cpp", cross .. "gcc -E") - toolchain:set("toolsets", "as", cross .. "gcc") - toolchain:set("toolsets", "ld", cross .. "g++", cross .. "gcc") - toolchain:set("toolsets", "sh", cross .. "g++", cross .. "gcc") - toolchain:set("toolsets", "ar", cross .. "ar", cross .. "gcc-ar") - toolchain:set("toolsets", "ex", cross .. "ar", cross .. "gcc-ar") - toolchain:set("toolsets", "ranlib", cross .. "ranlib", cross .. "gcc-ranlib") - toolchain:set("toolsets", "mrc", cross .. "windres") + if is_host("windows") and bindir then + -- @note we uses bin/ar.exe instead of bin/cross-gcc-ar.exe, @see https://github.com/xmake-io/xmake/issues/807#issuecomment-635779210 + toolchain:add("toolsets", "ar", path.join(bindir, "ar")) + toolchain:add("toolsets", "ex", path.join(bindir, "ar")) + toolchain:add("toolsets", "strip", path.join(bindir, "strip")) + toolchain:add("toolsets", "ranlib", path.join(bindir, "ranlib")) + end + toolchain:add("toolsets", "cc", cross .. "gcc") + toolchain:add("toolsets", "cxx", cross .. "gcc", cross .. "g++") + toolchain:add("toolsets", "cpp", cross .. "gcc -E") + toolchain:add("toolsets", "as", cross .. "gcc") + toolchain:add("toolsets", "ld", cross .. "g++", cross .. "gcc") + toolchain:add("toolsets", "sh", cross .. "g++", cross .. "gcc") + toolchain:add("toolsets", "ar", cross .. "ar") + toolchain:add("toolsets", "ex", cross .. "ar") + toolchain:add("toolsets", "strip", cross .. "strip") + toolchain:add("toolsets", "ranlib", cross .. "ranlib") + toolchain:add("toolsets", "mrc", cross .. "windres") -- init flags for architecture local archflags = nil |
