cpp2ffi: split func_header_generate into func_header_generate_structs and func_header_generate_funcs

This commit is contained in:
Victor Bombi
2020-09-06 10:48:39 +02:00
parent 512efb3505
commit 596f3008f6

View File

@@ -1658,10 +1658,10 @@ local function table_do_sorted(t,f)
end end
end end
M.table_do_sorted = table_do_sorted M.table_do_sorted = table_do_sorted
local function func_header_generate(FP)
local function func_header_generate_structs(FP)
local outtab = {} local outtab = {}
table.insert(outtab,"#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
table_do_sorted(FP.embeded_structs,function(k,v) table.insert(outtab,"typedef "..v.." "..k..";\n") end) table_do_sorted(FP.embeded_structs,function(k,v) table.insert(outtab,"typedef "..v.." "..k..";\n") end)
@@ -1672,8 +1672,14 @@ local function func_header_generate(FP)
table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype.."_"..te..";\n") table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype.."_"..te..";\n")
end) end)
end) end)
return outtab
end
M.func_header_generate_structs = func_header_generate_structs
table.insert(outtab,"#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n") local function func_header_generate_funcs(FP)
local outtab = {}
for _,t in ipairs(FP.funcdefs) do for _,t in ipairs(FP.funcdefs) do
if t.cimguiname then if t.cimguiname then
@@ -1704,7 +1710,19 @@ local function func_header_generate(FP)
end end
end end
local cfuncsstr = table.concat(outtab) return outtab
end
M.func_header_generate_funcs = func_header_generate_funcs
local function func_header_generate(FP)
local outtab = func_header_generate_structs(FP)
table.insert(outtab, 1, "#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
table.insert(outtab,"#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
local outtabf = func_header_generate_funcs(FP)
local cfuncsstr = table.concat(outtab)..table.concat(outtabf)
cfuncsstr = cfuncsstr:gsub("\n+","\n") --several empty lines to one empty line cfuncsstr = cfuncsstr:gsub("\n+","\n") --several empty lines to one empty line
return cfuncsstr return cfuncsstr
end end