Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/torch/qtlua.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonan Collobert <locronan@fb.com>2014-10-07 05:22:04 +0400
committerRonan Collobert <locronan@fb.com>2014-10-07 05:22:04 +0400
commit7594c740063c71b533cd2affd9b85213e2614e6d (patch)
treea150cc9cc330d720f9a8414778373724cf21ba86
parenteed12cca8d978b0dbfcf0eae2c3d0047617954a6 (diff)
cmake: workaround luarocks limitation (concerning lua library in use)
-rw-r--r--cmake/FindLua.cmake83
-rw-r--r--rocks/qtlua-scm-1.rockspec2
2 files changed, 73 insertions, 12 deletions
diff --git a/cmake/FindLua.cmake b/cmake/FindLua.cmake
index 0d2aa4e..875a4ec 100644
--- a/cmake/FindLua.cmake
+++ b/cmake/FindLua.cmake
@@ -10,23 +10,84 @@
INCLUDE(CheckLibraryExists)
-SET(LUA_EXECUTABLE "${LUA}")
+IF(LUA) # if we are using luarocks
+ MESSAGE(STATUS "Lua: using information from luarocks")
+ SET(LUA_EXECUTABLE "${LUA}")
+ SET(LUA_INCLUDE_DIR "${LUA_INCDIR}")
+ SET(LUA_PACKAGE_PATH "${LUADIR}")
+ SET(LUA_PACKAGE_CPATH "${LIBDIR}")
-FIND_LIBRARY(LUA_LIBRARIES
- NAMES lua liblua luajit libluajit lua-5.1 luajit-5.1 liblua-5.1 libluajit-5.1
- PATHS ${LUA_LIBDIR}
- ${LUA_BINDIR}
- NO_DEFAULT_PATH)
+ IF(LUALIB) # present on windows platforms only
+ SET(LUA_LIBRARIES "${LUALIB}")
+ ELSE() # too bad, luarocks does not provide it (pfff...)
+ GET_FILENAME_COMPONENT(LUA_EXEC_NAME ${LUA_EXECUTABLE} NAME_WE)
+ IF(LUA_EXEC_NAME STREQUAL "luajit")
+ FIND_LIBRARY(LUA_LIBRARIES
+ NAMES luajit libluajit
+ PATHS ${LUA_LIBDIR}
+ NO_DEFAULT_PATH)
+ ELSEIF(LUA_EXEC_NAME STREQUAL "lua")
+ FIND_LIBRARY(LUA_LIBRARIES
+ NAMES lua liblua
+ PATHS ${LUA_LIBDIR}
+ NO_DEFAULT_PATH)
+ ELSE()
+ MESSAGE(FATAL_ERROR "You seem to have a non-standard lua installation -- are you using luajit-rocks?")
+ ENDIF()
+ MESSAGE(STATUS "Lua library guess (no info from luarocks): ${LUA_LIBRARIES}")
+ ENDIF()
+
+ELSE() # standalone -- not using luarocks
+
+ IF(WITH_LUA51)
+ FIND_PROGRAM(LUA_EXECUTABLE
+ NAMES
+ lua51
+ lua5.1
+ lua
+ PATH)
+ ELSE()
+ FIND_PROGRAM(LUA_EXECUTABLE
+ NAMES
+ luajit
+ PATH)
+ ENDIF()
+ MESSAGE(STATUS "Lua executable: ${LUA_EXECUTABLE}")
+
+ IF(LUA_EXECUTABLE)
+ GET_FILENAME_COMPONENT(LUA_DIR ${LUA_EXECUTABLE} PATH)
+ ENDIF(LUA_EXECUTABLE)
+
+ IF(WITH_LUA51)
+ FIND_LIBRARY(LUA_LIBRARIES
+ NAMES lua liblua lua-5.1 liblua-5.1 libluajit-5.1
+ PATHS ${LUA_DIR}/../lib
+ ${LUA_DIR}
+ NO_DEFAULT_PATH)
+ ELSE()
+ FIND_LIBRARY(LUA_LIBRARIES
+ NAMES luajit libluajit luajit-5.1 libluajit-5.1
+ PATHS ${LUA_DIR}/../lib
+ ${LUA_DIR}
+ NO_DEFAULT_PATH)
+ ENDIF()
+ MESSAGE(STATUS "Lua library: ${LUA_LIBRARIES}")
+
+ FIND_PATH(LUA_INCLUDE_DIR lua.h
+ ${LUA_DIR}/../include/lua-5.1
+ ${LUA_DIR}/../include/lua51
+ ${LUA_DIR}/../include/lua
+ ${LUA_DIR}/../include
+ NO_DEFAULT_PATH)
+
+ MESSAGE(STATUS "Lua include directory: ${LUA_INCLUDE_DIR}")
+
+ENDIF()
IF(LUA_LIBRARIES)
CHECK_LIBRARY_EXISTS(${LUA_LIBRARIES} luaJIT_setmode "" LUA_JIT)
ENDIF()
-SET(LUA_INCLUDE_DIR "${LUA_INCDIR}")
-
-SET(LUA_PACKAGE_PATH "${LUADIR}")
-SET(LUA_PACKAGE_CPATH "${LIBDIR}")
-
MARK_AS_ADVANCED(
LUA_EXECUTABLE
LUA_LIBRARIES
diff --git a/rocks/qtlua-scm-1.rockspec b/rocks/qtlua-scm-1.rockspec
index bfbe380..f42610d 100644
--- a/rocks/qtlua-scm-1.rockspec
+++ b/rocks/qtlua-scm-1.rockspec
@@ -20,7 +20,7 @@ dependencies = {
build = {
type = "command",
build_command = [[
-cmake -E make_directory build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DLUA=$(LUA) -DLUA_BINDIR="$(LUA_BINDIR)" -DLUA_INCDIR="$(LUA_INCDIR)" -DLUA_LIBDIR="$(LUA_LIBDIR)" -DLUADIR="$(LUADIR)" -DLIBDIR="$(LIBDIR)" -DCONFDIR="$(CONFDIR)" && $(MAKE)
+cmake -E make_directory build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DLUA=$(LUA) -DLUALIB=$(LUALIB) -DLUA_BINDIR="$(LUA_BINDIR)" -DLUA_INCDIR="$(LUA_INCDIR)" -DLUA_LIBDIR="$(LUA_LIBDIR)" -DLUADIR="$(LUADIR)" -DLIBDIR="$(LIBDIR)" -DCONFDIR="$(CONFDIR)" && $(MAKE)
]],
install_command = "cd build && $(MAKE) install"
}