diff options
| author | ruki <[email protected]> | 2024-05-21 00:46:25 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-05-21 00:46:25 +0800 |
| commit | e642997ba82a99e067bbca0ad292a07b08d81fc9 (patch) | |
| tree | 2630ca421caf7ed87850ede6136339dd3228deb2 | |
| parent | 782baf43d356e96ba8eb001e3218e625d5f1e44d (diff) | |
improve export_all
| -rw-r--r-- | xmake/rules/utils/symbols/export_all/export_all.lua | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/xmake/rules/utils/symbols/export_all/export_all.lua b/xmake/rules/utils/symbols/export_all/export_all.lua index 9376e557e..c188d8386 100644 --- a/xmake/rules/utils/symbols/export_all/export_all.lua +++ b/xmake/rules/utils/symbols/export_all/export_all.lua @@ -135,18 +135,21 @@ function main(target, opt) -- get all symbols local allsymbols - local msvc = toolchain.load("msvc", {plat = target:plat(), arch = target:arch()}) - if msvc:check() then - local dumpbin = assert(find_tool("dumpbin", {envs = msvc:runenvs()}), "dumpbin not found!") - allsymbols = _get_allsymbols_by_dumpbin(target, dumpbin.program, { - export_classes = export_classes, - export_filter = export_filter}) - elseif target:has_tool("cc", "clang", "clang_cl", "clangxx", "gcc", "gxx") then + if target:has_tool("cc", "clang", "clang_cl", "clangxx", "gcc", "gxx") then local objdump = assert(find_tool("llvm-objdump") or find_tool("objdump"), "objdump not found!") allsymbols = _get_allsymbols_by_objdump(target, objdump.program, { export_classes = export_classes, export_filter = export_filter}) end + if not allsymbols then + local msvc = toolchain.load("msvc", {plat = target:plat(), arch = target:arch()}) + if msvc:check() then + local dumpbin = assert(find_tool("dumpbin", {envs = msvc:runenvs()}), "dumpbin not found!") + allsymbols = _get_allsymbols_by_dumpbin(target, dumpbin.program, { + export_classes = export_classes, + export_filter = export_filter}) + end + end -- export all symbols if allsymbols and allsymbols:size() > 0 then |
