summaryrefslogtreecommitdiff
path: root/xmake/rules/utils/bin2obj
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/rules/utils/bin2obj')
-rw-r--r--xmake/rules/utils/bin2obj/utils.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/xmake/rules/utils/bin2obj/utils.lua b/xmake/rules/utils/bin2obj/utils.lua
index 0e2bba9fd..3e8802e97 100644
--- a/xmake/rules/utils/bin2obj/utils.lua
+++ b/xmake/rules/utils/bin2obj/utils.lua
@@ -36,10 +36,15 @@ function generate_objectfile(target, batchcmds, binaryfile, opt)
local rulename = opt.rulename or "utils.bin2obj"
local progress = opt.progress
+ -- check for cosmocc toolchain
+ local is_cosmocc = target:toolchain("cosmocc") or (target:has_tool("cc", "cosmocc") and target:has_tool("ar", "cosmoar"))
+
-- get format (default: auto-detect from platform)
local format = opt.format or target:extraconf("rules", rulename, "format")
if not format then
- if target:is_plat("windows", "mingw", "msys", "cygwin") then
+ if is_cosmocc then
+ format = "elf"
+ elseif target:is_plat("windows", "mingw", "msys", "cygwin") then
format = "coff"
elseif target:is_plat("macosx", "iphoneos", "watchos", "appletvos") then
format = "macho"
@@ -108,6 +113,9 @@ function generate_objectfile(target, batchcmds, binaryfile, opt)
if zeroend then
table.insert(argv, "--zeroend")
end
+ if is_cosmocc then
+ table.insert(argv, "--cosmocc")
+ end
batchcmds:vlua("cli.binutils.bin2obj", argv)
return objectfile