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:
authorsoumith <soumith@gmail.com>2016-02-03 02:43:19 +0300
committersoumith <soumith@gmail.com>2016-02-03 02:43:19 +0300
commit57e96be7c3c01a6524e94740eb8a9c758630f22e (patch)
treebff44c685fef342cb17f60c5fb2059e2291d6166
parent2f789b812159fa522bb5d7acbf40df47deb6c50f (diff)
first cmake for lua 5.3
-rw-r--r--CMakeLists.txt9
-rw-r--r--lua-5.3/CMakeLists.txt101
-rw-r--r--lua-5.3/cmake/FindReadline.cmake60
-rw-r--r--lua-5.3/src/luaconf.h.in (renamed from lua-5.3/src/luaconf.h)11
4 files changed, 176 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e5df3ad..d1dfe8c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,8 +9,9 @@ ENDIF(NOT CMAKE_BUILD_TYPE)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
CMAKE_POLICY(VERSION 2.6)
-OPTION(WITH_LUA51 "Use Lua 5.1 instead of LuaJIT 2.0" OFF)
-OPTION(WITH_LUA52 "Use Lua 5.2 instead of LuaJIT 2.0" OFF)
+OPTION(WITH_LUA51 "Use Lua 5.1 instead of LuaJIT 2.1" OFF)
+OPTION(WITH_LUA52 "Use Lua 5.2 instead of LuaJIT 2.1" OFF)
+OPTION(WITH_LUA53 "Use Lua 5.3 instead of LuaJIT 2.1" OFF)
OPTION(WITH_LUAJIT21 "Use LuaJIT 2.1 instead of LuaJIT 2.0" OFF)
OPTION(WITH_SYSTEM_LUAJIT "Use LuaJIT installed on the system" OFF)
OPTION(WITH_LUAROCKS "Install Luarocks" ON)
@@ -27,6 +28,10 @@ ELSEIF(WITH_LUA52)
SET(LUA_EXE_NAME lua)
SET(LUA_VERSION 5.2)
ADD_SUBDIRECTORY(lua-5.2)
+ELSEIF(WITH_LUA53)
+ SET(LUA_EXE_NAME lua)
+ SET(LUA_VERSION 5.3)
+ ADD_SUBDIRECTORY(lua-5.3)
ELSEIF(WITH_LUAJIT21)
SET(LUA_EXE_NAME luajit)
SET(LUA_VERSION 5.1)
diff --git a/lua-5.3/CMakeLists.txt b/lua-5.3/CMakeLists.txt
new file mode 100644
index 0000000..2df9e3d
--- /dev/null
+++ b/lua-5.3/CMakeLists.txt
@@ -0,0 +1,101 @@
+# -*- 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.3/" CACHE STRING "lua path subdirectory name")
+ SET(INSTALL_LUA_LIB_SUBDIR "lib" CACHE STRING "installation lua lib subdirectory name")
+ SET(INSTALL_LUA_CPATH_SUBDIR "${INSTALL_LUA_LIB_SUBDIR}/lua/5.3/" CACHE STRING "lua cpath subdirectory name")
+ENDIF()
+
+IF(UNIX)
+ SET(LUA_ROOT "${CMAKE_INSTALL_PREFIX}")
+ SET(LUA_USE_POSIX 1)
+ENDIF()
+
+# Readline support
+FIND_PACKAGE(Readline)
+IF(READLINE_FOUND)
+ SET(LUA_USE_READLINE 1)
+ LIST(APPEND LIBS ${READLINE_LIBRARIES})
+ INCLUDE_DIRECTORIES(${READLINE_INCLUDE_DIR})
+ENDIF(READLINE_FOUND)
+
+INCLUDE(CheckLibraryExists)
+INCLUDE(CheckSymbolExists)
+INCLUDE(CheckFunctionExists)
+
+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()
+
+SET(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+FIND_PACKAGE(Threads)
+IF(THREADS_FOUND)
+ LIST(APPEND LIBS ${CMAKE_THREAD_LIBS_INIT})
+ENDIF()
+
+INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR} src)
+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 src/lua.hpp
+ DESTINATION "${INSTALL_INCLUDE_SUBDIR}")
+
+SET(SRC_LIB src/lapi.c src/lauxlib.c src/lbaselib.c src/lbitlib.c src/lcode.c src/lcorolib.c src/lctype.c
+ src/ldblib.c src/ldebug.c src/ldo.c src/ldump.c src/lfunc.c src/lgc.c src/linit.c src/liolib.c src/llex.c
+ src/lmem.c src/loadlib.c src/lobject.c src/lopcodes.c src/loslib.c src/lparser.c src/lstate.c src/lstring.c
+ src/lstrlib.c src/ltable.c src/ltablib.c src/ltm.c src/lua.c src/luac.c src/lundump.c src/lutf8lib.c
+ src/lvm.c src/lzio.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 "lua")
+ADD_EXECUTABLE(lua src/lua.c ${SRC_LIB})
+ADD_EXECUTABLE(luac src/luac.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 src/lua.hpp
+ DESTINATION "${INSTALL_INCLUDE_SUBDIR}/lua")
diff --git a/lua-5.3/cmake/FindReadline.cmake b/lua-5.3/cmake/FindReadline.cmake
new file mode 100644
index 0000000..4a2fc0c
--- /dev/null
+++ b/lua-5.3/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.3/src/luaconf.h b/lua-5.3/src/luaconf.h.in
index b4ed500..f0bba74 100644
--- a/lua-5.3/src/luaconf.h
+++ b/lua-5.3/src/luaconf.h.in
@@ -12,6 +12,12 @@
#include <stddef.h>
+#cmakedefine LUA_USE_DLOPEN 1
+#cmakedefine LUA_USE_POSIX 1
+#cmakedefine LUA_USE_READLINE 1
+#cmakedefine LUA_BUILD_AS_DLL 1
+#define LUA_ROOT "@LUA_ROOT@/"
+
/*
** ===================================================================
** Search for "@@" to find all configurable definitions.
@@ -188,7 +194,7 @@
#else /* }{ */
-#define LUA_ROOT "/usr/local/"
+/* #define LUA_ROOT "/usr/local/" */
#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/"
#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/"
#define LUA_PATH_DEFAULT \
@@ -606,7 +612,7 @@
/*
-@@ lua_number2strx converts a float to an hexadecimal numeric string.
+@@ lua_number2strx converts a float to an hexadecimal numeric string.
** In C99, 'sprintf' (with format specifiers '%a'/'%A') does that.
** Otherwise, you can leave 'lua_number2strx' undefined and Lua will
** provide its own implementation.
@@ -764,4 +770,3 @@
#endif
-