From bd3e33545598f5c8647668f48d7e35c7cf9a3ec0 Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Feb 2024 00:29:04 +0800 Subject: improve export_all for clang #4719 --- xmake/rules/utils/symbols/export_all/xmake.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/xmake/rules/utils/symbols/export_all/xmake.lua b/xmake/rules/utils/symbols/export_all/xmake.lua index b64f41bf4..0a1f1c2a9 100644 --- a/xmake/rules/utils/symbols/export_all/xmake.lua +++ b/xmake/rules/utils/symbols/export_all/xmake.lua @@ -32,7 +32,11 @@ rule("utils.symbols.export_all") if target:is_plat("windows") then assert(target:get("optimize") ~= "smallest", 'rule("utils.symbols.export_all"): does not support set_optimize("smallest") for target(%s)!', target:name()) local allsymbols_filepath = path.join(target:autogendir(), "rules", "symbols", "export_all.def") - target:add("shflags", "/def:" .. allsymbols_filepath, {force = true}) + if target:has_tool("sh", "link") then + target:add("shflags", "/def:" .. allsymbols_filepath, {force = true}) + elseif target:has_tool("sh", "clang", "clangxx") then + target:add("shflags", "-Wl,/def:" .. allsymbols_filepath, {force = true}) + end end end) before_link("export_all") -- cgit v1.3.1