/apps/twnlua: make no warnings
This commit is contained in:
parent
5bce3e5238
commit
6d19d2d819
@ -64,9 +64,9 @@ for procedure, procedure_desc in api["procedures"].items():
|
|||||||
for parameter in procedure_desc["params"]:
|
for parameter in procedure_desc["params"]:
|
||||||
basetype = parameter["type"].rsplit(' *', 1)[0]
|
basetype = parameter["type"].rsplit(' *', 1)[0]
|
||||||
|
|
||||||
if parameter["type"].endswith("*"):
|
if parameter["type"].endswith("*") and not parameter["type"] == "char *":
|
||||||
binding += " %s %s_value;\n" % (basetype, parameter["name"])
|
binding += " %s %s_value;\n" % (basetype, parameter["name"])
|
||||||
binding += " %s %s;\n" % (parameter["type"], parameter["name"])
|
binding += " %s %s;\n" % (parameter["type"] if not parameter["type"].endswith("*") else 'const ' + parameter["type"], parameter["name"])
|
||||||
binding += " lua_getfield(L, 1, \"%s\");\n" % parameter["name"]
|
binding += " lua_getfield(L, 1, \"%s\");\n" % parameter["name"]
|
||||||
|
|
||||||
if "default" in parameter and parameter["type"] != "float":
|
if "default" in parameter and parameter["type"] != "float":
|
||||||
@ -88,9 +88,9 @@ for procedure, procedure_desc in api["procedures"].items():
|
|||||||
elif basetype in api["types"]:
|
elif basetype in api["types"]:
|
||||||
used_converters[basetype] = api["types"][basetype]
|
used_converters[basetype] = api["types"][basetype]
|
||||||
if parameter["type"].endswith(" *"):
|
if parameter["type"].endswith(" *"):
|
||||||
binding += " { %s_value = to_%s(L, -1); %s = &%s_value; }\n" % (parameter["name"], basetype.lower(), parameter["name"], parameter["name"]);
|
binding += " { %s_value = to_%s(L); %s = &%s_value; }\n" % (parameter["name"], basetype.lower(), parameter["name"], parameter["name"]);
|
||||||
else:
|
else:
|
||||||
binding += " %s = to_%s(L, -1);\n" % (parameter["name"], basetype.lower());
|
binding += " %s = to_%s(L);\n" % (parameter["name"], basetype.lower());
|
||||||
else:
|
else:
|
||||||
raise BaseException("Unhandled parameter type '%s'" % (parameter["type"]))
|
raise BaseException("Unhandled parameter type '%s'" % (parameter["type"]))
|
||||||
|
|
||||||
@ -124,12 +124,12 @@ for typename, typedesc in used_converters.items():
|
|||||||
if "no_convert" in typedesc and typedesc["no_convert"]:
|
if "no_convert" in typedesc and typedesc["no_convert"]:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
converter = "static %s to_%s(lua_State *L, int idx) {\n" % (typename, typename.lower())
|
converter = "static %s to_%s(lua_State *L) {\n" % (typename, typename.lower())
|
||||||
converter += " %s %s;\n" % (typename, typename.lower());
|
converter += " %s %s;\n" % (typename, typename.lower());
|
||||||
|
|
||||||
if "fields" in typedesc:
|
if "fields" in typedesc:
|
||||||
for field in typedesc["fields"]:
|
for field in typedesc["fields"]:
|
||||||
converter += " lua_getfield(L, idx, \"%s\");\n" % (field["name"]);
|
converter += " lua_getfield(L, -1, \"%s\");\n" % (field["name"]);
|
||||||
if field["type"] == "float":
|
if field["type"] == "float":
|
||||||
converter += " %s.%s = (float)lua_tonumber(L, -1);\n" % (typename.lower(), field["name"]);
|
converter += " %s.%s = (float)lua_tonumber(L, -1);\n" % (typename.lower(), field["name"]);
|
||||||
elif field["type"] == "uint8_t":
|
elif field["type"] == "uint8_t":
|
||||||
@ -149,7 +149,7 @@ for typename, typedesc in used_converters.items():
|
|||||||
|
|
||||||
deinitializers += [" shfree(%s_map);" % typename.lower()]
|
deinitializers += [" shfree(%s_map);" % typename.lower()]
|
||||||
|
|
||||||
converter += " char *value = lua_tostring(L, -1);\n";
|
converter += " char const *value = lua_tostring(L, -1);\n";
|
||||||
converter += " %s = shget(%s_map, value);\n" % (typename.lower(), typename.lower())
|
converter += " %s = shget(%s_map, value);\n" % (typename.lower(), typename.lower())
|
||||||
converter += " lua_pop(L, 1);\n";
|
converter += " lua_pop(L, 1);\n";
|
||||||
|
|
||||||
@ -158,12 +158,14 @@ for typename, typedesc in used_converters.items():
|
|||||||
|
|
||||||
|
|
||||||
print('\n'.join(storages))
|
print('\n'.join(storages))
|
||||||
|
print("extern void bindgen_init(void);\n")
|
||||||
print("void bindgen_init(void) {\n" + '\n'.join(initializers) + "\n}\n")
|
print("void bindgen_init(void) {\n" + '\n'.join(initializers) + "\n}\n")
|
||||||
print('\n'.join(converters))
|
print('\n'.join(converters))
|
||||||
print('\n'.join(bindings))
|
print('\n'.join(bindings))
|
||||||
|
|
||||||
|
|
||||||
loader = "void bindgen_load_%s(lua_State *L) {\n" % api["name"]
|
loader = "extern void bindgen_load_%s(lua_State *L);\n" % api["name"]
|
||||||
|
loader += "void bindgen_load_%s(lua_State *L) {\n" % api["name"]
|
||||||
loader += " bindgen_init();\n"
|
loader += " bindgen_init();\n"
|
||||||
for procedure, procedure_desc in api["procedures"].items():
|
for procedure, procedure_desc in api["procedures"].items():
|
||||||
loader += " lua_pushcfunction(L, binding_%s);\n" % procedure
|
loader += " lua_pushcfunction(L, binding_%s);\n" % procedure
|
||||||
@ -173,7 +175,8 @@ loader += "}\n"
|
|||||||
print(loader)
|
print(loader)
|
||||||
|
|
||||||
|
|
||||||
unloader = "void bindgen_unload_%s(lua_State *L) {\n" % api["name"]
|
unloader = "extern void bindgen_unload_%s(lua_State *L);\n" % api["name"]
|
||||||
|
unloader += "void bindgen_unload_%s(lua_State *L) {\n(void)L;\n" % api["name"]
|
||||||
unloader += '\n'.join(deinitializers)
|
unloader += '\n'.join(deinitializers)
|
||||||
unloader += "}\n"
|
unloader += "}\n"
|
||||||
print(unloader)
|
print(unloader)
|
||||||
@ -182,7 +185,8 @@ print(unloader)
|
|||||||
# exceptions for the base townengine api
|
# exceptions for the base townengine api
|
||||||
# TODO: is there a way to generalize it? or rather, is there any need to do so?
|
# TODO: is there a way to generalize it? or rather, is there any need to do so?
|
||||||
if api["name"] == "twn":
|
if api["name"] == "twn":
|
||||||
contexter = "void bindgen_build_context(lua_State *L) {\n"
|
contexter = "extern void bindgen_build_context(lua_State *L);\n"
|
||||||
|
contexter += "void bindgen_build_context(lua_State *L) {\n"
|
||||||
contexter += to_table(api["types"]["Context"], "ctx", 4)
|
contexter += to_table(api["types"]["Context"], "ctx", 4)
|
||||||
contexter += "}"
|
contexter += "}"
|
||||||
print(contexter)
|
print(contexter)
|
||||||
|
Loading…
Reference in New Issue
Block a user