14 # You should have received a copy of the GNU General Public License |
14 # You should have received a copy of the GNU General Public License |
15 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
16 |
16 |
17 cmake_minimum_required(VERSION 2.6) |
17 cmake_minimum_required(VERSION 2.6) |
18 project(lua C) |
18 project(lua C) |
19 set(PROJECT_VERSION "0.0.2") |
19 set(PROJECT_VERSION "0.0.3") |
20 |
20 |
21 ## User options |
21 ## User options |
22 option(DEBUG "Enable debugging output" ON) |
22 option(DEBUG "Enable debugging output" ON) |
23 option(WANT_LUA52 "Use lua 5.2 instead of 5.1" OFF) |
23 option(WANT_LUA52 "Use lua 5.2 instead of 5.1" OFF) |
|
24 option(ENABLE_LUA_ALIAS "Enable aliasing command '/lua' to corresponding '/lua5.x' at module loading time" ON) |
24 option(LLM_CONNECTION_ENABLE "Enable exposing of mcabber loudmouth connection to lua" ON) |
25 option(LLM_CONNECTION_ENABLE "Enable exposing of mcabber loudmouth connection to lua" ON) |
25 option(LLM_LOG_HANDLER "Enable registration of log messages handler for lua-loudmouth library's messages" ON) |
26 option(LLM_LOG_HANDLER "Enable registration of log messages handler for lua-loudmouth library's messages" ON) |
26 set(ML_SOURCE_PRIORITY G_PRIORITY_HIGH_IDLE CACHE STRING "Glib event source priority for timeout and bgread") |
27 set(ML_SOURCE_PRIORITY G_PRIORITY_HIGH_IDLE CACHE STRING "Glib event source priority for timeout and bgread") |
27 set(ML_BGREAD_BUFFER 4096 CACHE STRING "Background pipe reading buffer size") |
28 set(ML_BGREAD_BUFFER 4096 CACHE STRING "Background pipe reading buffer size") |
|
29 set(OPT_MLUA_RC "lua_init_filename" CACHE STRING "Mcabber option name to specify lua initialization file") |
|
30 set(OPT_MLUA_LM_DEBUG "lua_lm_debug" CACHE STRING "Mcabber option name to enable/disable lua logging of LM messages") |
28 |
31 |
29 ## Gather information about system |
32 ## Gather information about system |
30 find_package(PkgConfig REQUIRED) |
33 find_package(PkgConfig REQUIRED) |
31 if(NOT WANT_LUA52) |
34 if(NOT WANT_LUA52) |
32 find_package(Lua51) |
35 find_package(Lua51) |
72 ${GLIB_LIBRARIES} |
75 ${GLIB_LIBRARIES} |
73 ${GMODULE_LIBRARIES} |
76 ${GMODULE_LIBRARIES} |
74 ${MCABBER_LIBRARRIES}) |
77 ${MCABBER_LIBRARRIES}) |
75 include_directories(${lua_SOURCE_DIR} |
78 include_directories(${lua_SOURCE_DIR} |
76 ${lua_BINARY_DIR}) |
79 ${lua_BINARY_DIR}) |
77 set_target_properties(lua PROPERTIES COMPILE_FLAGS "-Wall") |
80 set_target_properties(lua PROPERTIES COMPILE_FLAGS "-Wall" OUTPUT_NAME "lua${LUA_VERSION}") |
78 |
81 |
79 ## Extra targets |
82 ## Extra targets |
80 if(DOCGEN_EXECUTABLE) |
83 if(DOCGEN_EXECUTABLE) |
81 add_custom_command(OUTPUT ${lua_BINARY_DIR}/lua.html COMMAND ${DOCGEN_EXECUTABLE} -f html -t "Documentation for Lua module for MCabber" -o ${lua_BINARY_DIR}/lua.html -- ${lua_SOURCES} DEPENDS ${DOCGEN_EXECUTABLE} ${lua_SOURCES} WORKING_DIRECTORY ${lua_SOURCE_DIR}) |
84 add_custom_command(OUTPUT ${lua_BINARY_DIR}/lua.html COMMAND ${DOCGEN_EXECUTABLE} -f html -t "Documentation for Lua module for MCabber" -o ${lua_BINARY_DIR}/lua.html -- ${lua_SOURCES} DEPENDS ${DOCGEN_EXECUTABLE} ${lua_SOURCES} WORKING_DIRECTORY ${lua_SOURCE_DIR}) |
82 add_custom_target(doc ALL DEPENDS ${lua_BINARY_DIR}/lua.html) |
85 add_custom_target(doc ALL DEPENDS ${lua_BINARY_DIR}/lua.html) |
83 add_custom_command(OUTPUT ${lua_SOURCE_DIR}/docs/api.mdwn COMMAND ${DOCGEN_EXECUTABLE} -f mdwn -t "Documentation for Lua module for MCabber" -o ${lua_SOURCE_DIR}/docs/api.mdwn -- ${lua_SOURCES} DEPENDS ${DOCGEN_EXECUTABLE} ${lua_SOURCES} WORKING_DIRECTORY ${lua_SOURCE_DIR}) |
86 add_custom_command(OUTPUT ${lua_SOURCE_DIR}/docs/api.mdwn COMMAND ${DOCGEN_EXECUTABLE} -f mdwn -t "Documentation for Lua module for MCabber" -o ${lua_SOURCE_DIR}/docs/api.mdwn -- ${lua_SOURCES} DEPENDS ${DOCGEN_EXECUTABLE} ${lua_SOURCES} WORKING_DIRECTORY ${lua_SOURCE_DIR}) |
84 add_custom_target(update_api DEPENDS ${lua_SOURCE_DIR}/docs/api.mdwn) |
87 add_custom_target(update_api DEPENDS ${lua_SOURCE_DIR}/docs/api.mdwn) |
85 endif() |
88 endif() |
86 |
89 |
87 ## Packaging information |
90 ## Packaging information |
88 set(CPACK_PACKAGE_NAME libmcabber-lua) |
91 set(CPACK_PACKAGE_NAME mcabber-mod-lua${LUA_VERSION}) |
89 set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) |
92 set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) |
90 set(CPACK_PACKAGE_VENDOR "IsBear") |
93 set(CPACK_PACKAGE_VENDOR "IsBear") |
91 set(CPACK_PACKAGE_CONTACT "Myhailo Danylenko <isbear@ukrpost.net>") |
94 set(CPACK_PACKAGE_CONTACT "Myhailo Danylenko <isbear@ukrpost.net>") |
92 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Mcabber lua module") |
95 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Mcabber module for lua ${LUA_VERSION} scripting") |
93 set(CPACK_PACKAGE_DESCRIPTION_FILE ${lua_SOURCE_DIR}/README) |
96 set(CPACK_PACKAGE_DESCRIPTION_FILE ${lua_SOURCE_DIR}/README) |
94 set(CPACK_RESOURCE_FILE_LICENSE ${lua_SOURCE_DIR}/COPYING) |
97 set(CPACK_RESOURCE_FILE_LICENSE ${lua_SOURCE_DIR}/COPYING) |
95 set(CPACK_RESOURCE_FILE_README ${lua_SOURCE_DIR}/README) |
98 set(CPACK_RESOURCE_FILE_README ${lua_SOURCE_DIR}/README) |
96 set(CPACK_RESOURCE_FILE_WELCOME ${lua_SOURCE_DIR}/README) |
99 set(CPACK_RESOURCE_FILE_WELCOME ${lua_SOURCE_DIR}/README) |
97 set(CPACK_SOURCE_GENERATOR TBZ2) |
100 set(CPACK_SOURCE_GENERATOR TBZ2) |
115 if(HAVE_MCABBER_COMPLETION_FLAGS) |
118 if(HAVE_MCABBER_COMPLETION_FLAGS) |
116 set(AVV_COMPL_VERSION "compl:4") |
119 set(AVV_COMPL_VERSION "compl:4") |
117 else() |
120 else() |
118 set(AVV_COMPL_VERSION "compl:3") |
121 set(AVV_COMPL_VERSION "compl:3") |
119 endif() |
122 endif() |
120 configure_file(lua.avv.in lua.avv) |
123 string(REPLACE "." "_" AVV_FILENAME "lua${LUA_VERSION}") |
|
124 set(MODULE_RELATIVE_PATH "lib/mcabber/${CMAKE_SHARED_MODULE_PREFIX}lua${LUA_VERSION}${CMAKE_SHARED_MODULE_SUFFIX}") |
|
125 configure_file(lua.avv.in.in "${AVV_FILENAME}.avv.in" @ONLY) |
121 |
126 |
122 ## Set up installer |
127 ## Set up installer |
123 install(TARGETS lua DESTINATION lib/mcabber) |
128 install(TARGETS lua DESTINATION lib/mcabber) |
124 if(DOCGEN_EXECUTABLE) |
129 if(DOCGEN_EXECUTABLE) |
125 install(FILES ${lua_BINARY_DIR}/lua.html DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
130 install(FILES ${lua_BINARY_DIR}/lua.html DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
126 endif() |
131 endif() |
127 install(DIRECTORY examples DESTINATION share/doc/${CPACK_PACKAGE_NAME} PATTERN "*~" EXCLUDE) |
132 install(DIRECTORY examples DESTINATION share/doc/${CPACK_PACKAGE_NAME} PATTERN "*~" EXCLUDE) |
128 install(FILES docs/readme.mdwn docs/todo.mdwn COPYING DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
133 install(FILES docs/readme.mdwn docs/todo.mdwn COPYING DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
129 install(DIRECTORY help DESTINATION share/mcabber) |
134 install(FILES help/en/hlp_lua.txt DESTINATION share/mcabber RENAME hlp_lua${LUA_VERSION}.txt) # XXX localizations/other help |
130 install(FILES ${PROJECT_BINARY_DIR}/lua.avv DESTINATION share/mcabber/avv/modules RENAME lua) |
135 install(CODE "configure_file(${PROJECT_BINARY_DIR}/${AVV_FILENAME}.avv.in ${PROJECT_BINARY_DIR}/${AVV_FILENAME}.avv)") |
|
136 install(FILES ${PROJECT_BINARY_DIR}/${AVV_FILENAME}.avv DESTINATION share/mcabber/avv/modules RENAME ${AVV_FILENAME}) |
131 |
137 |
132 ## The End ## vim: se ts=4 sw=4: ## |
138 ## The End ## vim: se ts=4 sw=4: ## |