summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorruki <[email protected]>2020-04-22 23:50:51 +0800
committerruki <[email protected]>2020-04-22 17:05:10 +0800
commit00f34ec89f7735b45a3ecdb55f0952d545d73cbb (patch)
tree805b1ebb127cc86f94f1ecc6dd883294337ef00d /core/src
parent05df31effcfc9bc701387e1383b678f0914241be (diff)
pass engine name
Diffstat (limited to 'core/src')
-rw-r--r--core/src/demo/xmake.c2
-rw-r--r--core/src/xmake/engine.c16
-rw-r--r--core/src/xmake/engine.h9
3 files changed, 17 insertions, 10 deletions
diff --git a/core/src/demo/xmake.c b/core/src/demo/xmake.c
index d6605f7d0..b29a28806 100644
--- a/core/src/demo/xmake.c
+++ b/core/src/demo/xmake.c
@@ -8,5 +8,5 @@
*/
tb_int_t main(tb_int_t argc, tb_char_t** argv)
{
- return xm_engine_run(argc, argv, tb_null);
+ return xm_engine_run("xmake", argc, argv, tb_null);
}
diff --git a/core/src/xmake/engine.c b/core/src/xmake/engine.c
index 6ccada916..2d0bbd4ef 100644
--- a/core/src/xmake/engine.c
+++ b/core/src/xmake/engine.c
@@ -743,7 +743,7 @@ static tb_void_t xm_engine_init_features(xm_engine_t* engine)
/* //////////////////////////////////////////////////////////////////////////////////////
* implementation
*/
-xm_engine_ref_t xm_engine_init(xm_engine_lni_initalizer_cb_t lni_initalizer)
+xm_engine_ref_t xm_engine_init(tb_char_t const* name, xm_engine_lni_initalizer_cb_t lni_initalizer)
{
// done
tb_bool_t ok = tb_false;
@@ -825,6 +825,10 @@ xm_engine_ref_t xm_engine_init(xm_engine_lni_initalizer_cb_t lni_initalizer)
lua_pushstring(engine->lua, version_cstr);
lua_setglobal(engine->lua, "_VERSION_SHORT");
+ // init engine name
+ lua_pushstring(engine->lua, name? name : "xmake");
+ lua_setglobal(engine->lua, "_NAME");
+
// init namespace: xmake
lua_newtable(engine->lua);
lua_setglobal(engine->lua, "xmake");
@@ -960,12 +964,12 @@ tb_void_t xm_engine_register(xm_engine_ref_t self, tb_char_t const* module, luaL
luaL_register(engine->lua, tb_null, funcs);
lua_rawset(engine->lua, -3);
}
-tb_int_t xm_engine_run(tb_int_t argc, tb_char_t** argv, xm_engine_lni_initalizer_cb_t lni_initalizer)
+tb_int_t xm_engine_run(tb_char_t const* name, tb_int_t argc, tb_char_t** argv, xm_engine_lni_initalizer_cb_t lni_initalizer)
{
tb_int_t ok = -1;
if (xm_init())
{
- xm_engine_ref_t engine = xm_engine_init(lni_initalizer);
+ xm_engine_ref_t engine = xm_engine_init(name, lni_initalizer);
if (engine)
{
ok = xm_engine_main(engine, argc, argv);
@@ -975,7 +979,7 @@ tb_int_t xm_engine_run(tb_int_t argc, tb_char_t** argv, xm_engine_lni_initalizer
}
return ok;
}
-tb_int_t xm_engine_run_lua(tb_int_t argc, tb_char_t** argv, xm_engine_lni_initalizer_cb_t lni_initalizer, tb_char_t const* luaopts)
+tb_int_t xm_engine_run_lua(tb_char_t const* name, tb_int_t argc, tb_char_t** argv, xm_engine_lni_initalizer_cb_t lni_initalizer, tb_char_t const* luaopts)
{
if (luaopts)
{
@@ -987,7 +991,7 @@ tb_int_t xm_engine_run_lua(tb_int_t argc, tb_char_t** argv, xm_engine_lni_inital
argv2[3] = "lua.main";
if (argc > 1) tb_memcpy(argv2 + 4, argv + 1, (argc - 1) * sizeof(tb_char_t*));
argv2[argc2] = tb_null;
- return xm_engine_run(argc2, argv2, lni_initalizer);
+ return xm_engine_run(name, argc2, argv2, lni_initalizer);
}
else
{
@@ -998,6 +1002,6 @@ tb_int_t xm_engine_run_lua(tb_int_t argc, tb_char_t** argv, xm_engine_lni_inital
argv2[2] = "lua.main";
if (argc > 1) tb_memcpy(argv2 + 3, argv + 1, (argc - 1) * sizeof(tb_char_t*));
argv2[argc2] = tb_null;
- return xm_engine_run(argc2, argv2, lni_initalizer);
+ return xm_engine_run(name, argc2, argv2, lni_initalizer);
}
}
diff --git a/core/src/xmake/engine.h b/core/src/xmake/engine.h
index 7b0042dfc..6a014b3af 100644
--- a/core/src/xmake/engine.h
+++ b/core/src/xmake/engine.h
@@ -47,11 +47,12 @@ typedef tb_bool_t (*xm_engine_lni_initalizer_cb_t)(xm_engine_ref_t engine, lua_S
/*! init the engine
*
+ * @param name the engine name
* @param lni_initalizer the lni initializer
*
* @return the engine
*/
-xm_engine_ref_t xm_engine_init(xm_engine_lni_initalizer_cb_t lni_initalizer);
+xm_engine_ref_t xm_engine_init(tb_char_t const* name, xm_engine_lni_initalizer_cb_t lni_initalizer);
/*! exit the engine
*
@@ -79,18 +80,20 @@ tb_void_t xm_engine_register(xm_engine_ref_t engine, tb_char_t
/*! run main entry of the engine singleton
*
+ * @param name the engine name
* @param argc the argument count of the console
* @param argv the argument list of the console
* @param lni_initalizer the lni initializer
*
* @return the error code of main()
*/
-tb_int_t xm_engine_run(tb_int_t argc, tb_char_t** argv, xm_engine_lni_initalizer_cb_t lni_initalizer);
+tb_int_t xm_engine_run(tb_char_t const* name, tb_int_t argc, tb_char_t** argv, xm_engine_lni_initalizer_cb_t lni_initalizer);
/*! run lua action entry of the engine singleton for `xmake lua [-vD] lua.main`
*
* @note we need set $XMAKE_MODULES_DIR with the directory of "lua\\*.lua"
*
+ * @param name the engine name
* @param argc the argument count of the console
* @param argv the argument list of the console
* @param lni_initalizer the lni initializer
@@ -98,7 +101,7 @@ tb_int_t xm_engine_run(tb_int_t argc, tb_char_t** argv, xm_en
*
* @return the error code of main()
*/
-tb_int_t xm_engine_run_lua(tb_int_t argc, tb_char_t** argv, xm_engine_lni_initalizer_cb_t lni_initalizer, tb_char_t const* luaopts);
+tb_int_t xm_engine_run_lua(tb_char_t const* name, tb_int_t argc, tb_char_t** argv, xm_engine_lni_initalizer_cb_t lni_initalizer, tb_char_t const* luaopts);
/* //////////////////////////////////////////////////////////////////////////////////////
* extern