Support newer zmq and Lua versions.

master
Robert G. Jakabosky 2 years ago
parent fba94951bc
commit 9588c05348
No known key found for this signature in database
GPG Key ID: 0C38AF433FE0B1C0

@ -1,7 +1,7 @@
#
# Lua bindings for 0MQ
#
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.18)
project(lua-zmq C)
@ -9,9 +9,9 @@ set(BUILD_SHARED_LIBS TRUE)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
set(INSTALL_LMOD ${CMAKE_INSTALL_PREFIX}/share/lua/5.1 CACHE PATH
set(INSTALL_LMOD ${CMAKE_INSTALL_PREFIX}/share/lua/ CACHE PATH
"Directory to install Lua source modules (configure lua via LUA_PATH)")
set(INSTALL_CMOD ${CMAKE_INSTALL_PREFIX}/lib/lua/5.1 CACHE PATH
set(INSTALL_CMOD ${CMAKE_INSTALL_PREFIX}/lib/lua/ CACHE PATH
"Directory to install Lua binary modules (configure lua via LUA_CPATH)")
set(ZMQ_PATH "" CACHE PATH
"Directory to libzmq. (by default use pkg-config to detect path)")
@ -20,11 +20,13 @@ set(COMMON_CFLAGS "${CFLAGS}")
set(COMMON_LDFLAGS)
set(COMMON_LIBS)
## Lua 5.1.x
include(FindLua51)
if(NOT ${LUA51_FOUND})
message(FATAL_ERROR "The FindLua51 module could not find lua :-(")
## Lua 5.x
include(FindLua)
if(NOT ${LUA_FOUND})
message(FATAL_ERROR "The FindLua module could not find lua :-(")
endif()
set(COMMON_LIBS "${COMMON_LIBS};${LUA_LIBRARIES}")
if(WIN32)
set(COMMON_CFLAGS "${COMMON_CFLAGS} -I${LUA_INCLUDE_DIR}")
set(COMMON_LDFLAGS "${COMMON_LDFLAGS} ${LUA_LIBRARY}")

@ -2,11 +2,11 @@
# Lua Native Objects
#
set(LUA_NATIVE_OBJECTS_PATH ${CMAKE_SOURCE_DIR}/../LuaNativeObjects CACHE PATH
"Directory to LuaNativeObjects bindings generator.")
find_program(LUA_NATIVE_OBJECTS_EXECUTABLE native_objects.lua
PATHS ${CMAKE_SOURCE_DIR}/../LuaNativeObjects
DOC "LuaNativeObjects executable path")
set(USE_PRE_GENERATED_BINDINGS TRUE CACHE BOOL
"Set this to FALSE to re-generate bindings using LuaNativeObjects")
set(GENERATE_LUADOCS TRUE CACHE BOOL
"Set this to FALSE to avoid generation of docs using LuaDoc")
@ -17,7 +17,7 @@ macro(GenLuaNativeObjects _src_files_var)
string(REGEX REPLACE ".nobj.lua" ".nobj.c" _src_file_out ${_src_file})
string(REGEX REPLACE ".nobj.lua" ".nobj.ffi.lua" _ffi_file_out ${_src_file})
add_custom_command(OUTPUT ${_src_file_out} ${_ffi_file_out}
COMMAND lua ${LUA_NATIVE_OBJECTS_PATH}/native_objects.lua -outpath ${CMAKE_CURRENT_BINARY_DIR} -gen lua ${_src_file}
COMMAND ${LUA_NATIVE_OBJECTS_EXECUTABLE} -outpath ${CMAKE_CURRENT_BINARY_DIR} -gen lua ${_src_file}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${_src_file}
)
@ -27,7 +27,7 @@ macro(GenLuaNativeObjects _src_files_var)
string(REGEX REPLACE ".nobj.lua" "" _doc_base ${_src_file})
string(REGEX REPLACE ".nobj.lua" ".luadoc" _doc_file_out ${_src_file})
add_custom_target(${_doc_file_out} ALL
COMMAND lua ${LUA_NATIVE_OBJECTS_PATH}/native_objects.lua -outpath docs -gen luadoc ${_src_file}
COMMAND ${LUA_NATIVE_OBJECTS_EXECUTABLE} -outpath docs -gen luadoc ${_src_file}
COMMAND luadoc -nofiles -d docs docs
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${_src_file}

File diff suppressed because it is too large Load Diff

@ -608,7 +608,7 @@ end
#if VERSION_3_0 || VERSION_4_0
/* 3.0 backwards compatibility support for HWM. */
if(${opt} == ZMQ_HWM) {
int_val = luaL_checklong(L, ${val::idx});
int_val = luaL_checkinteger(L, ${val::idx});
val = &int_val;
val_len = sizeof(int_val);
${err} = zmq_setsockopt(${this}, ZMQ_SNDHWM, val, val_len);
@ -626,28 +626,28 @@ end
switch(opt_types[${opt}]) {
#if VERSION_2_1 || VERSION_3_0 || VERSION_4_0
case OPT_TYPE_FD:
fd_val = luaL_checklong(L, ${val::idx});
fd_val = luaL_checkinteger(L, ${val::idx});
val = &fd_val;
val_len = sizeof(fd_val);
break;
#endif
case OPT_TYPE_INT:
int_val = luaL_checklong(L, ${val::idx});
int_val = luaL_checkinteger(L, ${val::idx});
val = &int_val;
val_len = sizeof(int_val);
break;
case OPT_TYPE_UINT32:
uint32_val = luaL_checklong(L, ${val::idx});
uint32_val = luaL_checkinteger(L, ${val::idx});
val = &uint32_val;
val_len = sizeof(uint32_val);
break;
case OPT_TYPE_UINT64:
uint64_val = luaL_checklong(L, ${val::idx});
uint64_val = luaL_checkinteger(L, ${val::idx});
val = &uint64_val;
val_len = sizeof(uint64_val);
break;
case OPT_TYPE_INT64:
int64_val = luaL_checklong(L, ${val::idx});
int64_val = luaL_checkinteger(L, ${val::idx});
val = &int64_val;
val_len = sizeof(int64_val);
break;

Loading…
Cancel
Save