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

github.com/torch/luajit-rocks.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonan Collobert <locronan@fb.com>2014-09-10 23:41:55 +0400
committerRonan Collobert <locronan@fb.com>2014-09-10 23:44:00 +0400
commit62b119485477bf41e4189c7700aefdb3e3b45d23 (patch)
treea104902434779515708c3380cf06c6c6141b809f /lua-5.1
parentf487d6d8dcf40d8c1f3ec1fab52f31c50d3ca7b4 (diff)
added support for vanilla lua 5.1 (-DWITH_LUA51=ON) in cmake
Diffstat (limited to 'lua-5.1')
-rw-r--r--lua-5.1/CMakeLists.txt102
-rw-r--r--lua-5.1/cmake/FindReadline.cmake60
-rw-r--r--lua-5.1/src/luaconf.h.in (renamed from lua-5.1/src/luaconf.h)11
3 files changed, 172 insertions, 1 deletions
diff --git a/lua-5.1/CMakeLists.txt b/lua-5.1/CMakeLists.txt
new file mode 100644
index 0000000..4bf9a39
--- /dev/null
+++ b/lua-5.1/CMakeLists.txt
@@ -0,0 +1,102 @@
+# -*- cmake -*-
+
+PROJECT(Lua)
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
+CMAKE_POLICY(VERSION 2.6)
+
+SET(CMAKE_MODULE_PATH
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
+ "${CMAKE_MODULE_PATH}")
+
+SET(INSTALL_INCLUDE_SUBDIR "include" CACHE STRING "installation include subdirectory name")
+IF(WIN32)
+ SET(INSTALL_BIN_SUBDIR "." CACHE STRING "installation executable subdirectory name")
+ SET(INSTALL_LIB_SUBDIR "." CACHE STRING "installation library subdirectory name")
+ SET(INSTALL_LUA_PATH_SUBDIR "lua") # not editable
+ SET(INSTALL_LUA_CPATH_SUBDIR ".") # not editable
+ELSE()
+ SET(INSTALL_BIN_SUBDIR "bin" CACHE STRING "installation executable subdirectory name")
+ SET(INSTALL_LIB_SUBDIR "lib" CACHE STRING "installation library subdirectory name")
+ SET(INSTALL_LUA_PATH_SUBDIR "share/lua/5.1") # not editable
+ SET(INSTALL_LUA_LIB_SUBDIR "lib" CACHE STRING "installation lua lib subdirectory name")
+ SET(INSTALL_LUA_CPATH_SUBDIR "${INSTALL_LUA_LIB_SUBDIR}/lua/5.1") # not editable
+ENDIF()
+
+IF(UNIX)
+# IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "/usr/local")
+# ADD_DEFINITIONS(-DLUA_ROOT="${CMAKE_INSTALL_PREFIX}")
+# ENDIF()
+ SET(LUA_ROOT "${CMAKE_INSTALL_PREFIX}")
+ENDIF()
+
+# Readline support
+FIND_PACKAGE(Readline)
+IF(READLINE_FOUND)
+ SET(DLUA_USE_READLINE 1)
+ LIST(APPEND LIBS ${READLINE_LIBRARIES})
+ INCLUDE_DIRECTORIES(${READLINE_INCLUDE_DIR})
+ENDIF(READLINE_FOUND)
+
+INCLUDE(CheckLibraryExists)
+INCLUDE(CheckSymbolExists)
+INCLUDE(CheckFunctionExists)
+
+CHECK_FUNCTION_EXISTS(_longjmp LUA_USE_ULONGJMP)
+CHECK_SYMBOL_EXISTS(isatty unistd.h LUA_USE_ISATTY)
+CHECK_SYMBOL_EXISTS(mkstemp stdlib.h LUA_USE_MKSTEMP)
+CHECK_SYMBOL_EXISTS(popen stdio.h LUA_USE_POPEN)
+CHECK_LIBRARY_EXISTS(m sin "" LUA_USE_LIBM)
+IF(LUA_USE_LIBM)
+ LIST(APPEND LIBS "m")
+ENDIF()
+
+IF(NOT WIN32)
+ FIND_LIBRARY(DL_LIBRARY "dl")
+ IF(DL_LIBRARY)
+ SET(CMAKE_REQUIRED_LIBRARIES ${DL_LIBRARY})
+ LIST(APPEND LIBS ${DL_LIBRARY})
+ ENDIF(DL_LIBRARY)
+ CHECK_FUNCTION_EXISTS(dlopen LUA_USE_DLOPEN)
+ IF(NOT LUA_USE_DLOPEN)
+ MESSAGE(FATAL_ERROR "Cannot compile a useful lua.
+Function dlopen() seems not to be supported on your platform.
+Apparently you are not on a Windows platform as well.
+So lua has no way to deal with shared libraries!")
+ ENDIF(NOT LUA_USE_DLOPEN)
+ELSE()
+ SET(LUA_BUILD_AS_DLL 1)
+ENDIF()
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
+CONFIGURE_FILE(src/luaconf.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/luaconf.h)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/luaconf.h src/lua.h src/lauxlib.h src/lualib.h
+ DESTINATION "${INSTALL_INCLUDE_SUBDIR}")
+
+SET(SRC_LIB
+ src/lapi.c src/lcode.c src/ldebug.c src/ldo.c src/ldump.c src/lfunc.c src/lgc.c src/llex.c src/lmem.c
+ src/lobject.c src/lopcodes.c src/lparser.c src/lstate.c src/lstring.c src/ltable.c src/ltm.c
+ src/lundump.c src/lvm.c src/lzio.c
+ src/lauxlib.c src/lbaselib.c src/ldblib.c src/liolib.c
+ src/lmathlib.c src/loslib.c src/ltablib.c src/lstrlib.c src/loadlib.c src/linit.c
+ ${CMAKE_CURRENT_BINARY_DIR}/luaconf.h)
+
+# Shared library and executables
+ADD_LIBRARY(liblua SHARED ${SRC_LIB})
+SET_TARGET_PROPERTIES(liblua PROPERTIES
+ PREFIX "lib" IMPORT_PREFIX "lib" OUTPUT_NAME "luajit")
+ADD_EXECUTABLE(lua src/lua.c ${SRC_LIB})
+ADD_EXECUTABLE(luac src/luac.c src/print.c ${SRC_LIB})
+TARGET_LINK_LIBRARIES(liblua ${LIBS})
+TARGET_LINK_LIBRARIES(lua ${LIBS})
+TARGET_LINK_LIBRARIES(luac ${LIBS})
+
+# Install files
+INSTALL(TARGETS lua luac liblua
+ RUNTIME DESTINATION "${INSTALL_BIN_SUBDIR}"
+ LIBRARY DESTINATION "${INSTALL_LIB_SUBDIR}"
+ ARCHIVE DESTINATION "${INSTALL_LIB_SUBDIR}")
+
+INSTALL(FILES src/lua.h ${CMAKE_CURRENT_BINARY_DIR}/luaconf.h src/lualib.h src/lauxlib.h
+ DESTINATION "${INSTALL_INCLUDE_SUBDIR}/lua")
diff --git a/lua-5.1/cmake/FindReadline.cmake b/lua-5.1/cmake/FindReadline.cmake
new file mode 100644
index 0000000..4a2fc0c
--- /dev/null
+++ b/lua-5.1/cmake/FindReadline.cmake
@@ -0,0 +1,60 @@
+# - Find the readline library
+# This module defines
+# READLINE_INCLUDE_DIR, path to readline/readline.h, etc.
+# READLINE_LIBRARIES, the libraries required to use READLINE.
+# READLINE_FOUND, If false, do not try to use READLINE.
+# also defined, but not for general use are
+# READLINE_readline_LIBRARY, where to find the READLINE library.
+
+# Apple readline does not support readline hooks
+# So we look for another one by default
+IF(APPLE)
+ FIND_PATH(READLINE_INCLUDE_DIR NAMES readline/readline.h PATHS
+ /sw/include
+ /opt/local/include
+ /opt/include
+ /usr/local/include
+ /usr/include/
+ NO_DEFAULT_PATH
+ )
+ENDIF(APPLE)
+FIND_PATH(READLINE_INCLUDE_DIR NAMES readline/readline.h)
+
+
+# Apple readline does not support readline hooks
+# So we look for another one by default
+IF(APPLE)
+ FIND_LIBRARY(READLINE_readline_LIBRARY NAMES readline PATHS
+ /sw/lib
+ /opt/local/lib
+ /opt/lib
+ /usr/local/lib
+ /usr/lib
+ NO_DEFAULT_PATH
+ )
+ENDIF(APPLE)
+FIND_LIBRARY(READLINE_readline_LIBRARY NAMES readline)
+
+MARK_AS_ADVANCED(
+ READLINE_INCLUDE_DIR
+ READLINE_readline_LIBRARY
+ )
+
+SET( READLINE_FOUND "NO" )
+IF(READLINE_INCLUDE_DIR)
+ IF(READLINE_readline_LIBRARY)
+ SET( READLINE_FOUND "YES" )
+ SET( READLINE_LIBRARIES
+ ${READLINE_readline_LIBRARY}
+ )
+
+ ENDIF(READLINE_readline_LIBRARY)
+ENDIF(READLINE_INCLUDE_DIR)
+
+IF(READLINE_FOUND)
+ MESSAGE(STATUS "Found readline library")
+ELSE(READLINE_FOUND)
+ IF(READLINE_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find readline -- please give some paths to CMake")
+ ENDIF(READLINE_FIND_REQUIRED)
+ENDIF(READLINE_FOUND)
diff --git a/lua-5.1/src/luaconf.h b/lua-5.1/src/luaconf.h.in
index e2cb261..2a7a1ae 100644
--- a/lua-5.1/src/luaconf.h
+++ b/lua-5.1/src/luaconf.h.in
@@ -11,6 +11,15 @@
#include <limits.h>
#include <stddef.h>
+#cmakedefine LUA_USE_ULONGJMP 1
+#cmakedefine LUA_USE_DLOPEN 1
+#cmakedefine LUA_USE_ISATTY 1
+#cmakedefine LUA_USE_MKSTEMP 1
+#cmakedefine LUA_USE_POPEN 1
+#cmakedefine LUA_USE_READLINE 1
+#cmakedefine LUA_USE_MODULE_AND_LIBRARY 1
+#cmakedefine LUA_BUILD_AS_DLL 1
+#define LUA_ROOT "@LUA_ROOT@/"
/*
** ==================================================================
@@ -94,7 +103,7 @@
".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
#else
-#define LUA_ROOT "/usr/local/"
+/* #define LUA_ROOT "/usr/local/" */
#define LUA_LDIR LUA_ROOT "share/lua/5.1/"
#define LUA_CDIR LUA_ROOT "lib/lua/5.1/"
#define LUA_PATH_DEFAULT \