Build system updates
authorMyhailo Danylenko <isbear@ukrpost.net>
Thu, 30 Jul 2009 14:33:22 +0300
changeset 78 1253cacc0f21
parent 77 8a7f7829f4df
child 79 05328c643696
Build system updates * Debian-compliant package name * Switch to enable/disable loudmouth connection method
CMakeLists.txt
config.h.in
main.c
--- a/CMakeLists.txt	Sun Jul 26 15:15:20 2009 +0300
+++ b/CMakeLists.txt	Thu Jul 30 14:33:22 2009 +0300
@@ -20,6 +20,7 @@
 
 ## User options
 option(DEBUG "Enable debugging output" ON)
+option(LLM_CONNECTION_ENABLE "Enable exposing of mcabber loudmouth connection to lua" 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(ML_SOURCE_PRIORITY G_PRIORITY_HIGH_IDLE CACHE STRING "Glib event source priority for timeout and bgread")
@@ -30,9 +31,8 @@
 get_target_property(mcabber-lua_SOURCES mcabber-lua SOURCES)
 
 ## Packaging information
-set(CPACK_PACKAGE_VERSION_MAJOR 0)
-set(CPACK_PACKAGE_VERSION_MINOR 0)
-set(CPACK_PACKAGE_VERSION_PATCH 0)
+set(CPACK_PACKAGE_NAME mcabber-lua)
+set(CPACK_PACKAGE_VERSION "0.0.0")
 set(CPACK_PACKAGE_VENDOR "IsBear")
 set(CPACK_PACKAGE_CONTACT "Myhailo Danylenko <isbear@ukrpost.net>")
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Mcabber lua module")
@@ -40,11 +40,20 @@
 set(CPACK_RESOURCE_FILE_LICENSE ${mcabber-lua_SOURCE_DIR}/COPYING)
 set(CPACK_RESOURCE_FILE_README ${mcabber-lua_SOURCE_DIR}/README)
 set(CPACK_RESOURCE_FILE_WELCOME ${mcabber-lua_SOURCE_DIR}/README)
+set(CPACK_SOURCE_GENERATOR TBZ2)
+set(CPACK_GENERATOR DEB CACHE STRING "Binary package generator, eg DEB, RPM, TGZ, NSIS...")
+# XXX
+set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, liblua5.1-0, libglib2.0-0")
+set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "mcabber-lm | mcabber")
+set(CPACK_DEBIAN_PACKAGE_SUGGESTS "liblua5.1-posix1, liblua5.1-base64-0, liblua5.1-sha1-0")
 set(CPACK_DEBIAN_PACKAGE_SECTION libs)
-set(CPACK_SOURCE_GENERATOR TBZ2)
-set(CPACK_GENERATOR DEB)
-# FIXME: Detect architecture. How? Though, it anyway produces nonconformant deb names...
-#set(CPACK_SYSTEM_NAME i386)
+find_program(DPKG_EXECUTABLE dpkg)
+if(DPKG_EXECUTABLE)
+	execute_process(COMMAND ${DPKG_EXECUTABLE} --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
+else()
+	set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386 CACHE STRING "Architecture of package")
+endif()
+set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
 # XXX: Set package name directly to get rid of -Sources?
 set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*;\\\\.swp;~$;/build/;\\\\.tar\\\\.;\\\\.deb;\\\\.so")
 include(CPack)
@@ -55,7 +64,9 @@
 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)
+if(LLM_CONNECTION_ENABLE)
+	pkg_check_modules(LM REQUIRED loudmouth-1.0)
+endif()
 find_package(Perl)
 
 ## Set up compiler
--- a/config.h.in	Sun Jul 26 15:15:20 2009 +0300
+++ b/config.h.in	Thu Jul 30 14:33:22 2009 +0300
@@ -22,6 +22,9 @@
 // define this to enable debugging output
 #cmakedefine DEBUG
 
+// define this to enable exporting mcabber connection for lua-loudmouth
+#cmakedefine LLM_CONNECTION_ENABLE
+
 // define this to enable lua-loudmouth log messages handler
 #cmakedefine LLM_LOG_HANDLER
 
--- a/main.c	Sun Jul 26 15:15:20 2009 +0300
+++ b/main.c	Thu Jul 30 14:33:22 2009 +0300
@@ -339,6 +339,7 @@
 	return 1;
 }
 
+#ifdef LLM_CONNECTION_ENABLE
 /// main.connection
 /// Returns lightuserdata of mcabber's loudmouth connection.
 /// This can be very useful with lua-loudmouth, and not much otherwise.
@@ -348,6 +349,7 @@
 	lua_pushlightuserdata (L, lconnection);
 	return 1;
 }
+#endif
 
 /// main.print_info
 /// Prints a system message to buddy's window.
@@ -1074,7 +1076,7 @@
 		while (TRUE) {
 			gsize read = 0;
 			g_io_channel_read_chars (source, lua_bgread_buffer, MLUA_BGREAD_BUFFER, &read, NULL);
-			if (!read) // exausted
+			if (!read) // exhausted
 				break;
 
 			lua_rawgeti (cb->L, LUA_REGISTRYINDEX, cb->reference);