unigi.ext/test/lua.c

65 lines
1.3 KiB
C
Raw Normal View History

2024-09-10 23:53:56 +00:00
#include "unigi/main.h"
2024-09-25 19:20:23 +00:00
#include "unigi.platform.sdl2/main.c"
2024-09-10 23:53:56 +00:00
#include "unigi.ext/main.c"
#include "unigi.ext/main_wrap.c"
2024-09-25 19:20:05 +00:00
#ifdef unigi_ext_flag_inline_lua
#include "luaconf.h"
#include "lapi.c"
#include "lcode.c"
#include "ldebug.c"
#include "ldo.c"
#include "ldump.c"
#include "lfunc.c"
#include "lgc.c"
#include "llex.c"
#include "lmem.c"
#include "lobject.c"
#include "lopcodes.c"
#include "lparser.c"
#include "lstate.c"
#include "lstring.c"
#include "ltable.c"
#include "ltm.c"
#include "lundump.c"
#include "lvm.c"
#include "lzio.c"
#include "lauxlib.c"
#include "lbaselib.c"
#include "ldblib.c"
#include "liolib.c"
#include "lmathlib.c"
#include "loslib.c"
#include "ltablib.c"
#include "lstrlib.c"
#include "loadlib.c"
#include "linit.c"
#endif
2024-09-10 23:53:56 +00:00
#if LUA_VERSION_NUM < 503
#include <lualib.h>
#endif
int main(int argc, char *argv[]) {
lua_State *L = luaL_newstate();
2024-09-25 19:19:25 +00:00
assert(L != NULL);
luaL_openlibs(L);
luaopen_unigi(L); // Load the wrapped module
for (int i = 0; i < argc; i++) {
lua_pushstring(L, argv[i]);
lua_rawseti(L, -2, i + 1);
}
lua_setglobal(L, "arg");
if (luaL_dostring(L,
"main_path = (arg[1]:match(\"(.*[/\\\\])\") or \"./\"):sub(1,-2)\n"
"dofile(main_path .. \"/mods/main/script/main.lua\")"
) != 0) {
fprintf(stderr, "Error running Lua code: %s\n", lua_tostring(L, -1));
return 1;
}
2024-09-10 23:53:56 +00:00
return 0;
}