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.1") |
19 set(PROJECT_VERSION "0.0.2") |
20 |
20 |
21 ## User options |
21 ## User options |
22 option(DEBUG "Enable debugging output" ON) |
22 option(DEBUG "Enable debugging output" ON) |
23 option(LLM_CONNECTION_ENABLE "Enable exposing of mcabber loudmouth connection to lua" ON) |
23 option(WANT_LUA52 "Use lua 5.2 instead of 5.1" OFF) |
24 option(LLM_LOG_HANDLER "Enable registration of log messages handler for lua-loudmouth library's messages" ON) |
24 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) |
25 set(ML_SOURCE_PRIORITY G_PRIORITY_HIGH_IDLE CACHE STRING "Glib event source priority for timeout and bgread") |
26 set(ML_SOURCE_PRIORITY G_PRIORITY_HIGH_IDLE CACHE STRING "Glib event source priority for timeout and bgread") |
26 set(ML_BGREAD_BUFFER 4096 CACHE STRING "Background pipe reading buffer size") |
27 set(ML_BGREAD_BUFFER 4096 CACHE STRING "Background pipe reading buffer size") |
27 |
28 |
28 ## Gather information about system |
29 ## Gather information about system |
29 find_package(Lua51 REQUIRED) |
|
30 find_package(PkgConfig REQUIRED) |
30 find_package(PkgConfig REQUIRED) |
|
31 if(NOT WANT_LUA52) |
|
32 find_package(Lua51) |
|
33 endif() |
|
34 if(WANT_LUA52 OR NOT LUA51_FOUND) |
|
35 pkg_check_modules(LUA REQUIRED lua5.2) |
|
36 set(LUA_VERSION "5.2") |
|
37 set(HAVE_LUA52 "1") |
|
38 else() |
|
39 set(LUA_VERSION "5.1") |
|
40 set(LUA_INCLUDE_DIRS ${LUA_INCLUDE_DIR}) |
|
41 endif() |
31 pkg_check_modules(GLIB REQUIRED glib-2.0) |
42 pkg_check_modules(GLIB REQUIRED glib-2.0) |
32 pkg_check_modules(GMODULE REQUIRED gmodule-2.0) |
43 pkg_check_modules(GMODULE REQUIRED gmodule-2.0) |
33 pkg_check_modules(MCABBER REQUIRED mcabber) |
44 pkg_check_modules(MCABBER REQUIRED mcabber) |
34 find_program(DOCGEN_EXECUTABLE NAMES docgen.pl docgen DOC "Docgen documentation generator script (optional)") |
45 find_program(DOCGEN_EXECUTABLE NAMES docgen.pl docgen DOC "Docgen documentation generator script (optional)") |
35 include(CheckCSourceCompiles) |
46 include(CheckCSourceCompiles) |
65 ${lua_BINARY_DIR}) |
76 ${lua_BINARY_DIR}) |
66 set_target_properties(lua PROPERTIES COMPILE_FLAGS "-Wall") |
77 set_target_properties(lua PROPERTIES COMPILE_FLAGS "-Wall") |
67 |
78 |
68 ## Extra targets |
79 ## Extra targets |
69 if(DOCGEN_EXECUTABLE) |
80 if(DOCGEN_EXECUTABLE) |
70 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}) |
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}) |
71 add_custom_target(doc ALL DEPENDS ${lua_BINARY_DIR}/lua.html) |
82 add_custom_target(doc ALL DEPENDS ${lua_BINARY_DIR}/lua.html) |
72 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}) |
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}) |
73 add_custom_target(update_api DEPENDS ${lua_SOURCE_DIR}/docs/api.mdwn) |
84 add_custom_target(update_api DEPENDS ${lua_SOURCE_DIR}/docs/api.mdwn) |
74 endif() |
85 endif() |
75 |
86 |
76 ## Packaging information |
87 ## Packaging information |
77 set(CPACK_PACKAGE_NAME libmcabber-lua) |
88 set(CPACK_PACKAGE_NAME libmcabber-lua) |
78 set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) |
89 set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) |
79 set(CPACK_PACKAGE_VENDOR "IsBear") |
90 set(CPACK_PACKAGE_VENDOR "IsBear") |
80 set(CPACK_PACKAGE_CONTACT "Myhailo Danylenko <isbear@ukrpost.net>") |
91 set(CPACK_PACKAGE_CONTACT "Myhailo Danylenko <isbear@ukrpost.net>") |
81 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Mcabber lua module") |
92 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Mcabber lua module") |
82 set(CPACK_PACKAGE_DESCRIPTION_FILE ${lua_SOURCE_DIR}/README) |
93 set(CPACK_PACKAGE_DESCRIPTION_FILE ${lua_SOURCE_DIR}/README) |
83 set(CPACK_RESOURCE_FILE_LICENSE ${lua_SOURCE_DIR}/COPYING) |
94 set(CPACK_RESOURCE_FILE_LICENSE ${lua_SOURCE_DIR}/COPYING) |
84 set(CPACK_RESOURCE_FILE_README ${lua_SOURCE_DIR}/README) |
95 set(CPACK_RESOURCE_FILE_README ${lua_SOURCE_DIR}/README) |
85 set(CPACK_RESOURCE_FILE_WELCOME ${lua_SOURCE_DIR}/README) |
96 set(CPACK_RESOURCE_FILE_WELCOME ${lua_SOURCE_DIR}/README) |
86 set(CPACK_SOURCE_GENERATOR TBZ2) |
97 set(CPACK_SOURCE_GENERATOR TBZ2) |
87 set(CPACK_GENERATOR DEB CACHE STRING "Binary package generator, eg DEB, RPM, TGZ, NSIS...") |
98 set(CPACK_GENERATOR DEB CACHE STRING "Binary package generator, eg DEB, RPM, TGZ, NSIS...") |
88 # XXX |
99 # XXX |
89 set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, liblua5.1-0, libglib2.0-0") |
100 set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, liblua${LUA_VERSION}-0, libglib2.0-0") |
90 set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "mcabber-lm | mcabber") |
101 set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "mcabber") |
91 set(CPACK_DEBIAN_PACKAGE_SUGGESTS "liblua5.1-posix1, liblua5.1-base64-0, liblua5.1-sha1-0") |
102 set(CPACK_DEBIAN_PACKAGE_SUGGESTS "lua${LUA_VERSION}-posix, lua${LUA_VERSION}-base64, lua${LUA_VERSION}-sha1") |
92 set(CPACK_DEBIAN_PACKAGE_SECTION libs) |
103 set(CPACK_DEBIAN_PACKAGE_SECTION libs) |
93 find_program(DPKG_EXECUTABLE dpkg) |
104 find_program(DPKG_EXECUTABLE dpkg DOC "Path to dpkg (optional, to detect architecture)") |
94 if(DPKG_EXECUTABLE) |
105 if(DPKG_EXECUTABLE) |
95 execute_process(COMMAND ${DPKG_EXECUTABLE} --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE) |
106 execute_process(COMMAND ${DPKG_EXECUTABLE} --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE) |
96 else() |
107 else() |
97 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386 CACHE STRING "Architecture of package") |
108 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386 CACHE STRING "Architecture of package") |
98 endif() |
109 endif() |
99 set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") |
110 set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") |
100 # XXX: Set package name directly to get rid of -Sources? |
111 # XXX: Set package name directly to get rid of -Sources? |
101 set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*;\\\\.swp;~$;/build/;\\\\.tar\\\\.;\\\\.deb;\\\\.so") |
112 set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*;\\\\.swp;~$;/build/;\\\\.tar\\\\.;\\\\.deb;\\\\.so") |
102 include(CPack) |
113 include(CPack) |
103 |
114 |
104 if(HAVE_MCABBER_COMPLETION_FLAGS) |
115 if(HAVE_MCABBER_COMPLETION_FLAGS) |
105 set(AVV_COMPL_VERSION "compl:4") |
116 set(AVV_COMPL_VERSION "compl:4") |
106 else() |
117 else() |
107 set(AVV_COMPL_VERSION "compl:3") |
118 set(AVV_COMPL_VERSION "compl:3") |
108 endif() |
119 endif() |
109 configure_file(lua.avv.in lua.avv) |
120 configure_file(lua.avv.in lua.avv) |
110 |
121 |
111 ## Set up installer |
122 ## Set up installer |
112 install(TARGETS lua DESTINATION lib/mcabber) |
123 install(TARGETS lua DESTINATION lib/mcabber) |
113 if(DOCGEN_EXECUTABLE) |
124 if(DOCGEN_EXECUTABLE) |
114 install(FILES ${lua_BINARY_DIR}/lua.html DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
125 install(FILES ${lua_BINARY_DIR}/lua.html DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
115 endif() |
126 endif() |
116 install(DIRECTORY examples DESTINATION share/doc/${CPACK_PACKAGE_NAME} PATTERN "*~" EXCLUDE) |
127 install(DIRECTORY examples DESTINATION share/doc/${CPACK_PACKAGE_NAME} PATTERN "*~" EXCLUDE) |
117 install(FILES docs/readme.mdwn docs/todo.mdwn COPYING DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
128 install(FILES docs/readme.mdwn docs/todo.mdwn COPYING DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
118 install(DIRECTORY help DESTINATION share/mcabber) |
129 install(DIRECTORY help DESTINATION share/mcabber) |
119 install(FILES ${PROJECT_BINARY_DIR}/lua.avv DESTINATION share/mcabber/avv/modules RENAME lua) |
130 install(FILES ${PROJECT_BINARY_DIR}/lua.avv DESTINATION share/mcabber/avv/modules RENAME lua) |
120 |
131 |
121 ## The End ## vim: se ts=4 sw=4: ## |
132 ## The End ## vim: se ts=4 sw=4: ## |