# HG changeset patch # User Myhailo Danylenko # Date 1235406433 -7200 # Node ID a5f864d4207f45ac0dd95656af2c6699bafea78f # Parent a88a395e68683f3de2a665883633a6d31dc2ef3e Fixes for build system diff -r a88a395e6868 -r a5f864d4207f CMakeLists.txt --- a/CMakeLists.txt Mon Feb 23 17:05:43 2009 +0200 +++ b/CMakeLists.txt Mon Feb 23 18:27:13 2009 +0200 @@ -4,14 +4,15 @@ ## User options option(DEBUG "Enable debugging output" ON) +option(LLM_LOG_HANDLER "Enable registration of log messages handler for lua-loudmouth library's messages" ON) set(MCABBER_INCLUDE_DIR "/home/isbear/src/mcabber/hglm/mcabber/src" CACHE FILEPATH "Path to mcabber headers") +set(LUA_HOOK_NAME "hook_handler" CACHE STRING "Lua function name to be called on hook invocation") ## Define targets add_library(mcabber-lua MODULE main.c util.c) get_target_property(mcabber-lua_SOURCES mcabber-lua SOURCES) ## Packaging information -#set(CPACK_PACKAGE_NAME mcabber-lua) set(CPACK_PACKAGE_VERSION_MAJOR 0) set(CPACK_PACKAGE_VERSION_MINOR 0) set(CPACK_PACKAGE_VERSION_PATCH 0) @@ -33,16 +34,15 @@ ## Gather information about system find_package(Lua51 REQUIRED) -#execute_process(COMMAND lua -e "print ( package.path )" OUTPUT_VARIABLE LUA_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) -#execute_process(COMMAND lua -e "print ( package.cpath )" OUTPUT_VARIABLE LUA_CPATH OUTPUT_STRIP_TRAILING_WHITESPACE) find_package(PkgConfig REQUIRED) pkg_check_modules(GLIB REQUIRED glib-2.0) pkg_check_modules(GMODULE REQUIRED gmodule-2.0) +# XXX: we need only headers pkg_check_modules(LM REQUIRED loudmouth-1.0) find_package(Perl) ## Set up compiler -configure_file(config.h.in config.h) +configure_file(config.h.in config.h ESCAPE_QUOTES) include_directories(SYSTEM ${LUA_INCLUDE_DIR} ${GLIB_INCLUDE_DIRS} ${GMODULE_INCLUDE_DIRS} ${LM_INCLUDE_DIRS}) target_link_libraries(mcabber-lua ${LUA_LIBRARIES} ${GLIB_LIBRARIES} ${GMODULE_LIBRARIES}) include_directories(${mcabber-lua_SOURCE_DIR} ${mcabber-lua_BINARY_DIR} ${MCABBER_INCLUDE_DIR}) @@ -52,13 +52,9 @@ add_custom_command(OUTPUT ${mcabber-lua_BINARY_DIR}/mcabber-lua.html COMMAND ${PERL_EXECUTABLE} ${mcabber-lua_SOURCE_DIR}/docgen.pl ${mcabber-lua_SOURCES} > ${mcabber-lua_BINARY_DIR}/mcabber-lua.html DEPENDS ${mcabber-lua_SOURCE_DIR}/docgen.pl ${mcabber-lua_SOURCES} WORKING_DIRECTORY ${mcabber-lua_SOURCE_DIR}) add_custom_target(doc ALL DEPENDS ${mcabber-lua_BINARY_DIR}/mcabber-lua.html) endif() -#add_custom_target(test COMMAND env "LUA_PATH=${lua-lm_SOURCE_DIR}/?.lua;${LUA_PATH}" "LUA_CPATH=${lua-lm_SOURCE_DIR}/?.so;${lua-lm_BINARY_DIR}/?.so;${LUA_CPATH}" lua ${lua-lm_SOURCE_DIR}/test.lua DEPENDS loudmouth VERBATIM) -#add_custom_target(test1 COMMAND env "LUA_PATH=${lua-lm_SOURCE_DIR}/?.lua;${LUA_PATH}" "LUA_CPATH=${lua-lm_SOURCE_DIR}/?.so;${lua-lm_BINARY_DIR}/?.so;${LUA_CPATH}" lua ${lua-lm_BINARY_DIR}/test.lua DEPENDS loudmouth VERBATIM) ## Set up installer install(TARGETS mcabber-lua DESTINATION lib/mcabber) -#install(FILES lm.lua DESTINATION share/lua/5.1) -#install(FILES test.lua DESTINATION share/doc/${CPACK_PACKAGE_NAME}/examples) if(PERL_FOUND) install(FILES ${mcabber-lua_BINARY_DIR}/mcabber-lua.html DESTINATION share/doc/${CPACK_PACKAGE_NAME}) endif() diff -r a88a395e6868 -r a5f864d4207f README --- a/README Mon Feb 23 17:05:43 2009 +0200 +++ b/README Mon Feb 23 18:27:13 2009 +0200 @@ -1,21 +1,26 @@ This is a lua 5.1 module for mcabber. -To install it, you need lua and glib headers and libraries and -cmake. Then do +To install it, you will need: +- lua library and headers +- glib (with gmodule) library and headers +- loudmouth headers +- mcabber-lm sources (for headers) +- cmake +- perl (optional) + +Then do +$ mkdir build $ cd build $ cmake .. +$ make edit_cache $ make # make install Debian users can instead of make install do -$ make package +$ fakeroot make package # dpkg -i mcabber-lua-*.deb -Also you can be interested in running -$ make edit_cache -before doing make to configure some project settings. - This code underlies terms of GNU GPL v2 or later. I will be happy to get feedback, patches, suggestions, etc. diff -r a88a395e6868 -r a5f864d4207f config.h.in --- a/config.h.in Mon Feb 23 17:05:43 2009 +0200 +++ b/config.h.in Mon Feb 23 18:27:13 2009 +0200 @@ -1,24 +1,30 @@ -#ifndef LLM_CONFIG_H -#define LLM_CONFIG_H +#ifndef MLUA_CONFIG_H +#define MLUA_CONFIG_H // define this to enable debugging output #cmakedefine DEBUG +// define this to enable lua-loudmouth log messages handler +#cmakedefine LLM_LOG_HANDLER + +// define this to a lua function name that will handle hooks +#define LUA_HOOK_NAME ( "${LUA_HOOK_NAME}" ) + // hack for mcabber headers #define MODULES_ENABLE #ifdef DEBUG # include -# ifndef LLM_LOG_PREFIX -# define LLM_LOG_PREFIX ( NULL ) +# ifndef MLUA_LOG_PREFIX +# define MLUA_LOG_PREFIX ( NULL ) # endif -# define D(FORMAT...) { g_log (LLM_LOG_PREFIX, G_LOG_LEVEL_DEBUG, FORMAT); } -# define I(FORMAT...) { g_log (LLM_LOG_PREFIX, G_LOG_LEVEL_INFO, FORMAT); } -# define W(FORMAT...) { g_log (LLM_LOG_PREFIX, G_LOG_LEVEL_WARNING, FORMAT); } -# define E(FORMAT...) { g_log (LLM_LOG_PREFIX, G_LOG_LEVEL_ERROR, FORMAT); } +# define D(FORMAT...) { g_log (MLUA_LOG_PREFIX, G_LOG_LEVEL_DEBUG, FORMAT); } +# define I(FORMAT...) { g_log (MLUA_LOG_PREFIX, G_LOG_LEVEL_INFO, FORMAT); } +# define W(FORMAT...) { g_log (MLUA_LOG_PREFIX, G_LOG_LEVEL_WARNING, FORMAT); } +# define E(FORMAT...) { g_log (MLUA_LOG_PREFIX, G_LOG_LEVEL_ERROR, FORMAT); } #else # define D(FORMAT...) { /* FORMAT */ } # define I(FORMAT...) { /* FORMAT */ } diff -r a88a395e6868 -r a5f864d4207f main.c --- a/main.c Mon Feb 23 17:05:43 2009 +0200 +++ b/main.c Mon Feb 23 18:27:13 2009 +0200 @@ -8,6 +8,7 @@ #include // getenv #include // strcmp +#include "config.h" #include "util.h" #include "logprint.h" // scr_LogPrint #include "screen.h" // scr_Beep, scr_WriteIncomingMessage @@ -522,7 +523,19 @@ // MAIN INITIALIZATION CODE +#ifdef LLM_LOG_HANDLER +// FIXME: this should not be here +guint lua_lm_log_handler_id; + +void lua_lm_log_handler (const gchar *domain, GLogLevelFlags log_level, const gchar *message, gpointer ignore) +{ + scr_LogPrint (LPRINT_LOGNORM, "%s: %s", domain, message); +} +#endif + +#ifndef LUA_HOOK_NAME #define LUA_HOOK_NAME ( "hook_handler" ) +#endif static void lua_hook (hk_arg_t *args, lua_State *L) { @@ -590,6 +603,11 @@ lua_pop (lua, 1); // XXX lua_register (lua, "dopath", lua_global_dopath); lua_register (lua, "print", lua_global_print ); + +#ifdef LLM_LOG_HANDLER + // FIXME: this should not be here. + lua_lm_log_handler_id = g_log_set_handler ("lua-lm", G_LOG_LEVEL_MASK, (GLogFunc) lua_lm_log_handler, NULL); +#endif initfile = mcabber_config_filename ("mcabberrc.lua"); if (!initfile) @@ -657,6 +675,11 @@ lua_close (lua); lua = NULL; + +#ifdef LLM_LOG_HANDLER + // FIXME: shouldn't be here + g_log_remove_handler ("lua-lm", lua_lm_log_handler_id); +#endif } }