diff options
| author | ruki <[email protected]> | 2020-04-22 23:50:51 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-04-22 17:05:10 +0800 |
| commit | 00f34ec89f7735b45a3ecdb55f0952d545d73cbb (patch) | |
| tree | 805b1ebb127cc86f94f1ecc6dd883294337ef00d /core/src | |
| parent | 05df31effcfc9bc701387e1383b678f0914241be (diff) | |
pass engine name
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/demo/xmake.c | 2 | ||||
| -rw-r--r-- | core/src/xmake/engine.c | 16 | ||||
| -rw-r--r-- | core/src/xmake/engine.h | 9 |
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 |
