diff options
| -rw-r--r-- | xmake/rules/windows/xmake.lua | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/xmake/rules/windows/xmake.lua b/xmake/rules/windows/xmake.lua index 6bffb4bea..f02927a88 100644 --- a/xmake/rules/windows/xmake.lua +++ b/xmake/rules/windows/xmake.lua @@ -18,8 +18,10 @@ rule("win.subsystem") local subsystem = target:data("win.subsystem") local valid = false + local startswith = string.startswith + local upper = string.upper for _, s in ipairs(subsystems) do - if string.upper(subsystem):startswith(s) then + if startswith(upper(subsystem), s) then valid = true break end @@ -28,13 +30,13 @@ rule("win.subsystem") local linker = target:tool("ld") linker = path.filename(linker) - if linker:startswith("clang") then + if startswith(linker, "clang") then target:add("ldflags", "-Wl,-subsystem:" .. subsystem, { force = true }) - elseif linker:startswith("link") or linker:startswith("lld-link") then - target:add("ldflags", "/SUBSYSTEM:" .. string.upper(subsystem), { force = true }) - elseif linker:startswith("gcc") or linker:startswith("g++") then + elseif startswith(linker, "link") or startswith(linker, "lld-link") then + target:add("ldflags", "/SUBSYSTEM:" .. upper(subsystem), { force = true }) + elseif startswith(linker, "gcc") or startswith(linker, "g++") then target:add("ldflags", "-Wl,-m" .. subsystem, { force = true }) - elseif linker:startswith("ld") then + elseif startswith(linker, "ld") then target:add("ldflags", "-m" .. subsystem, { force = true }) end end) |
