CMakeLists.txt
changeset 144 690b5524b895
parent 143 4232a5da1af2
child 145 9f7bbb768ba8
equal deleted inserted replaced
143:4232a5da1af2 144:690b5524b895
    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: ##