summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorruki <[email protected]>2017-12-05 00:28:30 +0800
committerruki <[email protected]>2017-12-08 14:10:23 +0800
commit19f8192150b7be4322e77e54f201c580d3e9869d (patch)
tree6e7d6cf9ff3133ac21e5eceb4632d4b37897fe3b /core/src
parentd4498bf11ec07012bc33475c9b700aca64c45c2f (diff)
register curses
Diffstat (limited to 'core/src')
-rw-r--r--core/src/demo/makefile6
-rw-r--r--core/src/lcurses/lcurses.c5
-rw-r--r--core/src/lcurses/makefile7
-rw-r--r--core/src/lcurses/xmake.lua5
-rw-r--r--core/src/xmake/config.h4
-rw-r--r--core/src/xmake/machine.c11
-rw-r--r--core/src/xmake/makefile1
-rw-r--r--core/src/xmake/xmake.lua8
8 files changed, 33 insertions, 14 deletions
diff --git a/core/src/demo/makefile b/core/src/demo/makefile
index 6c573677b..5b79e8d4c 100644
--- a/core/src/demo/makefile
+++ b/core/src/demo/makefile
@@ -14,9 +14,9 @@ demo_C_FILES += xmake
demo_PKGS-$(BASE) += base
# others
-demo_LIBS += xmake$(DTYPE) tbox$(DTYPE) luajit$(DTYPE) sv$(DTYPE)
-demo_INC_DIRS += ../ ../tbox/src ../tbox/inc/$(PLAT) ../luajit/src ../sv/include
-demo_LIB_DIRS += ../xmake ../tbox ../luajit ../sv
+demo_LIBS += xmake$(DTYPE) lcurses$(DTYPE) tbox$(DTYPE) luajit$(DTYPE) sv$(DTYPE)
+demo_INC_DIRS += ../ ../tbox/src ../tbox/inc/$(PLAT) ../luajit/src ../sv/include
+demo_LIB_DIRS += ../xmake ../tbox ../luajit ../sv ../lcurses
demo_CXFLAGS += -D__tb_prefix__=\"xmake\"
# suffix
diff --git a/core/src/lcurses/lcurses.c b/core/src/lcurses/lcurses.c
index 8f791c18a..026d737e7 100644
--- a/core/src/lcurses/lcurses.c
+++ b/core/src/lcurses/lcurses.c
@@ -59,6 +59,8 @@ Notes:
mostly for cui usage.
************************************************************************/
+#ifdef XM_CONFIG_API_HAVE_CURSES
+
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
@@ -2305,7 +2307,7 @@ static const luaL_reg curseslib[] =
};
-int luaopen_cui_curses (lua_State *L)
+int xm_curses_register (lua_State *L)
{
/*
** create new metatable for window objects
@@ -2415,3 +2417,4 @@ static void init_ascii_map()
ascii_map[252] = 110; ascii_map[253] = 50; ascii_map[254] = ACS_BULLET; ascii_map[255] = 32;
}
+#endif
diff --git a/core/src/lcurses/makefile b/core/src/lcurses/makefile
index a7be7933c..3fcd7e19e 100644
--- a/core/src/lcurses/makefile
+++ b/core/src/lcurses/makefile
@@ -10,9 +10,12 @@ lcurses_TYPE = LIB
# config
lcurses_CONFIG = n
-# core files
+# curses files
lcurses_C_FILES += lcurses
-
+
+# curses flags
+lcurses_CXFLAGS += $(if $(findstring curses,$(base_LIBNAMES)),-DXM_CONFIG_API_HAVE_CURSES,)
+
# includes
lcurses_INC_DIRS += ../luajit/src
diff --git a/core/src/lcurses/xmake.lua b/core/src/lcurses/xmake.lua
index a63f2aa7e..24dd528aa 100644
--- a/core/src/lcurses/xmake.lua
+++ b/core/src/lcurses/xmake.lua
@@ -15,5 +15,6 @@ target("lcurses")
-- add the common source files
add_files("*.c")
-
-
+
+ -- add options
+ add_options("curses")
diff --git a/core/src/xmake/config.h b/core/src/xmake/config.h
index 978456b18..5150880e6 100644
--- a/core/src/xmake/config.h
+++ b/core/src/xmake/config.h
@@ -22,8 +22,8 @@
* @file config.h
*
*/
-#ifndef XM_GBOX_CONFIG_H
-#define XM_GBOX_CONFIG_H
+#ifndef XM_CORE_CONFIG_H
+#define XM_CORE_CONFIG_H
/* //////////////////////////////////////////////////////////////////////////////////////
* includes
diff --git a/core/src/xmake/machine.c b/core/src/xmake/machine.c
index 6d26c445d..c98bf1be1 100644
--- a/core/src/xmake/machine.c
+++ b/core/src/xmake/machine.c
@@ -132,6 +132,11 @@ tb_int_t xm_semver_parse(lua_State* lua);
tb_int_t xm_semver_satisfies(lua_State* lua);
tb_int_t xm_semver_select(lua_State* lua);
+#ifdef XM_CONFIG_API_HAVE_CURSES
+// register curses
+tb_int_t xm_curses_register(lua_State* lua);
+#endif
+
/* //////////////////////////////////////////////////////////////////////////////////////
* globals
*/
@@ -486,6 +491,12 @@ xm_machine_ref_t xm_machine_init()
// bind semver functions
luaL_register(impl->lua, "semver", g_semver_functions);
+#ifdef XM_CONFIG_API_HAVE_CURSES
+ // bind curses
+ xm_curses_register(impl->lua);
+ lua_setglobal(impl->lua, "curses");
+#endif
+
// init host
#if defined(TB_CONFIG_OS_WINDOWS)
lua_pushstring(impl->lua, "windows");
diff --git a/core/src/xmake/makefile b/core/src/xmake/makefile
index ee3062634..a8afcd30d 100644
--- a/core/src/xmake/makefile
+++ b/core/src/xmake/makefile
@@ -69,6 +69,7 @@ xmake_C_FILES += \
# flags
xmake_CXFLAGS += -D__tb_prefix__=\"xmake\"
xmake_CXFLAGS += $(if $(findstring readline,$(base_LIBNAMES)),-DXM_CONFIG_API_HAVE_READLINE,)
+xmake_CXFLAGS += $(if $(findstring curses,$(base_LIBNAMES)),-DXM_CONFIG_API_HAVE_CURSES,)
# includes
xmake_INC_DIRS += \
diff --git a/core/src/xmake/xmake.lua b/core/src/xmake/xmake.lua
index 176409194..bfe67e79d 100644
--- a/core/src/xmake/xmake.lua
+++ b/core/src/xmake/xmake.lua
@@ -5,7 +5,7 @@ target("xmake")
set_kind("static")
-- add deps
- add_deps("sv", "luajit", "tbox")
+ add_deps("lcurses", "sv", "luajit", "tbox")
-- add defines
add_defines("__tb_prefix__=\"xmake\"")
@@ -24,7 +24,7 @@ target("xmake")
-- add the common source files
add_files("**.c")
-
- -- add cfunc
- add_cfunc("API", "readline", "readline", {"readline/readline.h"}, "readline")
+
+ -- add options
+ add_options("curses", "readline")