Skip to content

Commit 19c9c2f

Browse files
author
Dibyendu Majumdar
committed
Prepare for adding to Ravi distro
1 parent 1d7625c commit 19c9c2f

File tree

3 files changed

+149
-1
lines changed

3 files changed

+149
-1
lines changed

CMakeLists.txt

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
cmake_minimum_required(VERSION 2.6)
2+
3+
option(USE_LUA53 "Controls whether the library will be for Lua 5.3 or Ravi, default is OFF" OFF)
4+
5+
SET(CMAKE_MODULE_PATH
6+
"${CMAKE_CURRENT_SOURCE_DIR}/cmake"
7+
"${CMAKE_MODULE_PATH}")
8+
9+
find_package(Lua REQUIRED)
10+
11+
message(STATUS "LUA_INCLUDE_DIR: ${LUA_INCLUDE_DIR}")
12+
message(STATUS "LUA_LIBRARIES : ${LUA_LIBRARIES}")
13+
14+
message(STATUS "LUA_INCDIR : ${LUA_INCDIR}")
15+
message(STATUS "LUA_LIBDIR : ${LUA_LIBDIR}")
16+
message(STATUS "LUA_BINDIR : ${LUA_BINDIR}")
17+
message(STATUS "LUALIB : ${LUALIB}")
18+
message(STATUS "LIBDIR (LUA_CPATH) : ${LIBDIR}")
19+
message(STATUS "LUADIR (LUA_PATH) : ${LUADIR}")
20+
21+
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
22+
INCLUDE_DIRECTORIES("${LUA_INCDIR}")
23+
LINK_DIRECTORIES("${LUA_LIBDIR}")
24+
25+
SET(src
26+
"${CMAKE_CURRENT_SOURCE_DIR}/pb.c"
27+
)
28+
29+
SET(luasrc
30+
"${CMAKE_CURRENT_SOURCE_DIR}/protoc.lua"
31+
)
32+
33+
# When using MSVC
34+
IF(MSVC)
35+
# we want to respect the standard, and we are bored of those **** .
36+
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE=1)
37+
ENDIF(MSVC)
38+
39+
ADD_LIBRARY("pb" SHARED ${src})
40+
set_target_properties("pb" PROPERTIES PREFIX "")
41+
SET_TARGET_PROPERTIES("pb" PROPERTIES
42+
IMPORT_PREFIX "lib")
43+
44+
IF(APPLE)
45+
SET_TARGET_PROPERTIES("pb" PROPERTIES
46+
LINK_FLAGS "-undefined dynamic_lookup")
47+
ENDIF()
48+
49+
INSTALL(FILES ${luasrc} DESTINATION ${LUADIR})
50+
INSTALL(TARGETS pb
51+
LIBRARY DESTINATION ${LIBDIR}
52+
RUNTIME DESTINATION ${LUA_BINDIR})
53+
54+
IF(LUALIB)
55+
TARGET_LINK_LIBRARIES(pb ${LUALIB})
56+
ENDIF()

cmake/FindLua.cmake

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
if (USE_LUA53)
2+
3+
find_path(LUA_INCLUDE_DIR lua.h
4+
PATHS
5+
c:/Software/lua53/include
6+
~/lua53/include
7+
NO_DEFAULT_PATH
8+
)
9+
10+
find_library(LUA_LIBRARIES
11+
NAMES lua53 liblua53
12+
PATHS
13+
c:/Software/lua53/lib
14+
~/lua53/lib
15+
)
16+
17+
find_program(LUA_EXE
18+
NAMES lua
19+
PATHS
20+
c:/Software/lua53/bin
21+
~/lua53/bin
22+
)
23+
24+
else()
25+
26+
find_path(LUA_INCLUDE_DIR lua.h
27+
PATHS
28+
c:/Software/ravi/include/ravi
29+
~/ravi/include/ravi
30+
NO_DEFAULT_PATH
31+
)
32+
33+
find_library(LUA_LIBRARIES
34+
NAMES ravi libravi ravinojit libravinojit ravillvm libravillvm
35+
PATHS
36+
c:/Software/ravi/lib
37+
~/ravi/lib
38+
)
39+
40+
find_program(LUA_EXE
41+
NAMES ravi
42+
PATHS
43+
c:/Software/ravi/bin
44+
~/ravi/bin
45+
)
46+
47+
endif()
48+
49+
# LUA_INCDIR - place where lua headers exist
50+
set(LUA_INCDIR ${LUA_INCLUDE_DIR})
51+
52+
# LIBDIR - LUA_CPATH
53+
if (WIN32)
54+
55+
get_filename_component(LIBDIR
56+
${LUA_EXE}
57+
DIRECTORY)
58+
59+
else()
60+
61+
get_filename_component(LIBDIR
62+
${LUA_LIBRARIES}
63+
DIRECTORY)
64+
65+
endif()
66+
67+
get_filename_component(LUA_BINDIR
68+
${LUA_EXE}
69+
DIRECTORY)
70+
71+
# LUA_LIBDIR - place where lua native libraries exist
72+
get_filename_component(LUA_LIBDIR
73+
${LUA_LIBRARIES}
74+
DIRECTORY
75+
)
76+
77+
if (NOT WIN32)
78+
set(LUA_LIBRARIES "${LUA_LIBRARIES};m")
79+
endif()
80+
81+
# LUALIB - the lua library to link against
82+
set(LUALIB ${LUA_LIBRARIES})
83+
84+
# LUADIR - LUA_PATH
85+
if (USE_LUA53)
86+
set(LUADIR "${LUA_LIBDIR}/../share/lua/5.3")
87+
else()
88+
set(LUADIR "${LUA_LIBDIR}/../share/lua/5.3")
89+
endif()
90+
91+
set(LUA "${LUA_EXE}")
92+

test.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,7 @@ function _G.test_buffer()
801801
eq(#b, 6)
802802

803803
fail("integer format error: 'foo'", function() pb.pack("v", "foo") end)
804-
if _VERSION == "Lua 5.3" then
804+
if _VERSION == "Lua 5.3" or _VERSION == 'Ravi 5.3' then
805805
fail("integer format error", function() pb.pack("v", 1e308) end)
806806
else
807807
fail("number has no integer representation", function() pb.pack("v", 1e308) end)

0 commit comments

Comments
 (0)