--- a/CMakeLists.txt Wed Nov 28 01:55:12 2012 +0200
+++ b/CMakeLists.txt Wed Nov 28 01:56:15 2012 +0200
@@ -16,23 +16,36 @@
cmake_minimum_required(VERSION 2.6)
project(lua-lm C)
-set(PROJECT_VERSION "0.9.1")
+set(PROJECT_VERSION "0.9.2")
## User options
-option(DEBUG "Enable debugging output" OFF)
-set(TEST_USER "test@jabber.org" CACHE STRING "Testing: Your jabber account name")
-set(TEST_PASSWORD "greatsecret" CACHE STRING "Testing: Password for your jabber account")
-set(TEST_TO "test@jabber.org/mcabber" CACHE STRING "Testing: Target jabber entity")
+option(DEBUG "Enable debugging output" OFF)
+option(WANT_LUA52 "Force Lua 5.2 usage" OFF)
+set(TEST_USER "test@jabber.org" CACHE STRING "Testing: Your jabber account name")
+set(TEST_PASSWORD "greatsecret" CACHE STRING "Testing: Password for your jabber account")
+set(TEST_TO "test@jabber.org/mcabber" CACHE STRING "Testing: Target jabber entity")
set(TEST_FINGERPRINT "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff" CACHE STRING "Testing: Your jabber server SSL fingerprint")
## Gather information about system
-find_package(Lua51 REQUIRED)
-find_program(LUA_EXECUTABLE lua lua5.1 luanoreadline)
+find_package(PkgConfig REQUIRED)
+if(NOT WANT_LUA52)
+ find_package(Lua51)
+endif()
+if(WANT_LUA52 OR NOT LUA51_FOUND)
+ pkg_check_modules(LUA REQUIRED lua5.2)
+ set(LUA_VERSION "5.2")
+ set(LUA_DEB_DEP "liblua5.2")
+ set(HAVE_LUA52 "1")
+else()
+ set(LUA_VERSION "5.1")
+ set(LUA_DEB_DEP "liblua5.1-0")
+ set(LUA_INCLUDE_DIRS ${LUA_INCLUDE_DIR})
+endif()
+find_program(LUA_EXECUTABLE lua${LUA_VERSION} lua luanoreadline)
if(LUA_EXECUTABLE)
- execute_process(COMMAND ${LUA_EXECUTABLE} -e "print ( package.path )" OUTPUT_VARIABLE LUA_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${LUA_EXECUTABLE} -e "print ( package.path )" OUTPUT_VARIABLE LUA_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${LUA_EXECUTABLE} -e "print ( package.cpath )" OUTPUT_VARIABLE LUA_CPATH OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
-find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB REQUIRED glib-2.0)
pkg_check_modules(LM REQUIRED loudmouth-1.0)
include(CheckFunctionExists)
@@ -54,7 +67,7 @@
set(DEBUG_COMPILE_FLAGS "-g")
endif()
configure_file(config.h.in config.h)
-include_directories(SYSTEM ${LUA_INCLUDE_DIR} ${GLIB_INCLUDE_DIRS} ${LM_INCLUDE_DIRS})
+include_directories(SYSTEM ${LUA_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${LM_INCLUDE_DIRS})
target_link_libraries(loudmouth ${LUA_LIBRARIES} ${GLIB_LIBRARIES} ${LM_LIBRARIES})
include_directories(${lua-lm_SOURCE_DIR} ${lua-lm_BINARY_DIR})
set_target_properties(loudmouth PROPERTIES
@@ -73,7 +86,7 @@
endif()
## Packaging information
-set(CPACK_PACKAGE_NAME liblua5.1-loudmouth)
+set(CPACK_PACKAGE_NAME lua${LUA_VERSION}-loudmouth)
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
set(CPACK_PACKAGE_VENDOR "IsBear")
set(CPACK_PACKAGE_CONTACT "Myhailo Danylenko <isbear@ukrpost.net>")
@@ -87,7 +100,7 @@
set(CPACK_DEBIAN_PACKAGE_SECTION libs)
# XXX: tmp=`tempfile`; obj=${lua-lm_BINARY_DIR}/loudmouth.so; ldd $obj > $tmp; objdump -p $obj | \grep NEEDED | sed -e 's/.*NEEDED *//' | xargs -I "{}" grep -F "{}" $tmp | sed -e 's/.*=> *\(\S*\).*/\1/' | xargs dpkg -S | cut -d : -f 1 | sort -u ; \rm $tmp
# TODO: versions
-set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libglib2.0-0, liblua5.1-0, libloudmouth1-0")
+set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libglib2.0-0, ${LUA_DEB_DEP}, libloudmouth1-0")
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)
@@ -100,8 +113,8 @@
include(CPack)
## Set up installer
-install(TARGETS loudmouth DESTINATION lib/lua/5.1)
-install(FILES lm.lua DESTINATION share/lua/5.1)
+install(TARGETS loudmouth DESTINATION lib/lua/${LUA_VERSION})
+install(FILES lm.lua DESTINATION share/lua/${LUA_VERSION})
install(FILES test.lua DESTINATION share/doc/${CPACK_PACKAGE_NAME}/examples)
if(DOCGEN_EXECUTABLE)
install(FILES ${lua-lm_BINARY_DIR}/loudmouth.html DESTINATION share/doc/${CPACK_PACKAGE_NAME})