CMakeLists.txt
changeset 54 6bef2082e5f9
parent 48 ef69edc792be
child 55 25f8359ed8cf
--- 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})