summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-07-31 00:38:15 +0800
committerruki <[email protected]>2020-07-31 00:38:15 +0800
commit2a8c070910d30f70e68434723c0dbe46ae233954 (patch)
tree5ced6d52f068504e530e2916132a7a640910e7b9
parent7cc471182dc9e137c2d5ff8d7731157bf227d819 (diff)
fix find dmd
-rw-r--r--xmake/toolchains/dlang/check.lua11
-rw-r--r--xmake/toolchains/dlang/xmake.lua8
2 files changed, 12 insertions, 7 deletions
diff --git a/xmake/toolchains/dlang/check.lua b/xmake/toolchains/dlang/check.lua
index cd40b0d15..14baa3282 100644
--- a/xmake/toolchains/dlang/check.lua
+++ b/xmake/toolchains/dlang/check.lua
@@ -20,17 +20,22 @@
-- imports
import("core.project.config")
+import("lib.detect.find_tool")
import("detect.sdks.find_cross_toolchain")
--- check the cross toolchain, for ldc2/gdc toolchain
function main(toolchain)
- -- is cross?
+ -- we attempt to find dmd, ldc2 in $PATH
+ if find_tool("dmd") or find_tool("ldc2") then
+ return true
+ end
+
+ -- we need find ldc2 and gdc in the given toolchain sdk directory
local sdkdir = config.get("sdk")
local bindir = config.get("bin")
local cross = config.get("cross")
if not sdkdir and not bindir and not cross then
- return
+ return
end
-- find cross toolchain
diff --git a/xmake/toolchains/dlang/xmake.lua b/xmake/toolchains/dlang/xmake.lua
index bfe9c20b8..cfb35d9c1 100644
--- a/xmake/toolchains/dlang/xmake.lua
+++ b/xmake/toolchains/dlang/xmake.lua
@@ -38,10 +38,10 @@ toolchain("dlang")
local cross = config.get("cross") or ""
-- set toolset
- toolchain:set("toolset", "dc", "$(env DC)", "dmd", "ldc2", cross .. "gdc")
- toolchain:set("toolset", "dcld", "$(env DC)", "dmd", "ldc2", cross .. "gdc")
- toolchain:set("toolset", "dcsh", "$(env DC)", "dmd", "ldc2", cross .. "gdc")
- toolchain:set("toolset", "dcar", "$(env DC)", "dmd", "ldc2", cross .. "gcc-ar")
+ toolchain:add("toolset", "dc", "$(env DC)", "dmd", "ldc2", cross .. "gdc")
+ toolchain:add("toolset", "dcld", "$(env DC)", "dmd", "ldc2", cross .. "gdc")
+ toolchain:add("toolset", "dcsh", "$(env DC)", "dmd", "ldc2", cross .. "gdc")
+ toolchain:add("toolset", "dcar", "$(env DC)", "dmd", "ldc2", cross .. "gcc-ar")
-- init flags
local march = toolchain:is_arch("x86_64", "x64") and "-m64" or "-m32"