CMakeLists.txt
changeset 148 b222f4d111d9
parent 147 66a63c9609de
child 151 5d90caa7fb2c
--- a/CMakeLists.txt	Sat Nov 07 22:36:02 2015 +0200
+++ b/CMakeLists.txt	Sat Mar 05 18:34:07 2016 +0200
@@ -1,4 +1,4 @@
-## Copyright 2009-2012 Myhailo Danylenko
+## Copyright 2009-2016 Myhailo Danylenko
 # This file is part of mcabber-lua.
 #
 # mcabber-lua is free software: you can redistribute it and/or modify
@@ -16,11 +16,10 @@
 
 cmake_minimum_required(VERSION 2.6)
 project(lua C)
-set(PROJECT_VERSION "0.0.3")
+set(PROJECT_VERSION "0.0.4")
 
 ## User options
 option(DEBUG                 "Enable debugging output"                                                           ON)
-option(WANT_LUA52            "Use lua 5.2 instead of 5.1"                                                       OFF)
 option(ENABLE_LUA_ALIAS      "Enable aliasing command '/lua' to corresponding '/lua5.x' at module loading time"  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)
@@ -28,21 +27,25 @@
 set(ML_BGREAD_BUFFER   4096                 CACHE STRING "Background pipe reading buffer size")
 set(OPT_MLUA_RC        "lua_init_filename"  CACHE STRING "Mcabber option name to specify lua initialization file")
 set(OPT_MLUA_LM_DEBUG  "lua_lm_debug"       CACHE STRING "Mcabber option name to enable/disable lua logging of LM messages")
+set(WANT_LUA           "AUTO" CACHE STRING "Lua version to use (You'll have to define this with -DWANT_LUA=LUAX.X)")
+set_property(CACHE WANT_LUA PROPERTY STRINGS "AUTO" "LUA5.1" "LUA5.2" "LUA5.3")
 
 ## Gather information about system
 find_package(PkgConfig REQUIRED)
-if(NOT WANT_LUA52)
-	find_package(Lua51)
+if(WANT_LUA STREQUAL "LUA5.3")
+	find_package(Lua 5.3 EXACT REQUIRED)
+elseif(WANT_LUA STREQUAL "LUA5.2")
+	find_package(Lua 5.2 EXACT REQUIRED)
+elseif(WANT_LUA STREQUAL "LUA5.1")
+	find_package(Lua 5.1 EXACT REQUIRED)
+else()
+	find_package(Lua 5.1 REQUIRED)
 endif()
-if(WANT_LUA52 OR NOT LUA51_FOUND)
-	pkg_check_modules(LUA REQUIRED lua5.2)
-	set(LUA_VERSION "5.2")
-	set(HAVE_LUA52  "1")
-else()
-	set(LUA_VERSION "5.1")
-	set(LUA_INCLUDE_DIRS ${LUA_INCLUDE_DIR})
+set(LUA_VERSION "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
+set(LUA_MODULENAME "lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}")
+if(LUA_VERSION VERSION_EQUAL "5.1")
+	set(LUA51_COMPATIBILITY TRUE)
 endif()
-string(REPLACE "." "" LUA_MODULENAME "lua${LUA_VERSION}")
 pkg_check_modules(GLIB REQUIRED glib-2.0)
 pkg_check_modules(GMODULE REQUIRED gmodule-2.0)
 pkg_check_modules(MCABBER REQUIRED mcabber)
@@ -70,7 +73,7 @@
 
 ## Set up compiler
 configure_file(config.h.in config.h ESCAPE_QUOTES)
-include_directories(SYSTEM ${LUA_INCLUDE_DIRS}
+include_directories(SYSTEM ${LUA_INCLUDE_DIR}
 					${GLIB_INCLUDE_DIRS}
 					${GMODULE_INCLUDE_DIRS}
 					${MCABBER_INCLUDE_DIRS})
@@ -80,7 +83,9 @@
 					  ${MCABBER_LIBRARRIES})
 include_directories(${lua_SOURCE_DIR}
 					${lua_BINARY_DIR})
-set_target_properties(lua PROPERTIES COMPILE_FLAGS "-Wall" OUTPUT_NAME "${LUA_MODULENAME}")
+set_target_properties(lua PROPERTIES
+                      COMPILE_FLAGS "-Wall"
+					  OUTPUT_NAME "${LUA_MODULENAME}")
 
 ## Extra targets
 if(DOCGEN_EXECUTABLE)
@@ -132,7 +137,7 @@
 endif()
 install(DIRECTORY examples                      DESTINATION share/doc/${CPACK_PACKAGE_NAME} PATTERN "*~" EXCLUDE)
 install(FILES     docs/readme.mdwn docs/todo.mdwn COPYING DESTINATION share/doc/${CPACK_PACKAGE_NAME})
-install(FILES     help/en/hlp_lua.txt           DESTINATION share/mcabber RENAME hlp_lua${LUA_VERSION}.txt) # XXX localizations/other help
+install(FILES     help/en/hlp_lua.txt           DESTINATION share/mcabber RENAME hlp_lua${LUA_MODULENAME}.txt) # XXX localizations/other help
 install(FILES     ${PROJECT_BINARY_DIR}/${LUA_MODULENAME}.avv DESTINATION share/mcabber/avv/modules RENAME ${LUA_MODULENAME})
 
 ## The End ## vim: se ts=4 sw=4: ##