diff options
| author | ruki <[email protected]> | 2026-03-14 23:02:18 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-03-14 23:02:18 +0800 |
| commit | 22976f06349a3af4b520ae5796ab20edc95bfe0c (patch) | |
| tree | eb40e0b3395d1083802159031e79691f17676385 /xmake/toolchains | |
| parent | a86bde866d5f65d5fbd31f1474190dcc40aa2876 (diff) | |
improve find_dotnet
Diffstat (limited to 'xmake/toolchains')
| -rw-r--r-- | xmake/toolchains/dotnet/xmake.lua | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/xmake/toolchains/dotnet/xmake.lua b/xmake/toolchains/dotnet/xmake.lua index 9c1fe40c3..6a02b0a0a 100644 --- a/xmake/toolchains/dotnet/xmake.lua +++ b/xmake/toolchains/dotnet/xmake.lua @@ -28,30 +28,33 @@ toolchain("dotnet") set_toolset("cssh", "dotnet") on_check(function (toolchain) - import("lib.detect.find_tool") import("detect.sdks.find_dotnet") - -- find dotnet program - local dotnet = find_tool("dotnet", {version = true}) - if not dotnet then - return false + -- find dotnet sdk from packages first + local sdkinfo + for _, package in ipairs(toolchain:packages()) do + local installdir = package:installdir() + if installdir and os.isdir(installdir) then + sdkinfo = find_dotnet(installdir, {force = true}) + if sdkinfo then + break + end + end end - toolchain:config_set("dotnet", dotnet.program) - toolchain:config_set("dotnet_version", dotnet.version) - -- find dotnet sdk info - local sdkinfo = find_dotnet() - if sdkinfo then - toolchain:config_set("sdkinfo", sdkinfo) + -- find dotnet sdk from system + if not sdkinfo then + sdkinfo = find_dotnet() + end + if not sdkinfo or not sdkinfo.bindir then + return false end + toolchain:config_set("bindir", sdkinfo.bindir) + toolchain:config_set("sdkdir", sdkinfo.sdkdir) return true end) on_load(function (toolchain) - local dotnet = toolchain:config("dotnet") or "dotnet" - toolchain:set("toolset", "cs", dotnet) - toolchain:set("toolset", "csld", dotnet) - toolchain:set("toolset", "cssh", dotnet) -- set default environment variables toolchain:add("runenvs", "DOTNET_NOLOGO", "1") |
