Some patches for lua on windows

pull/112/merge
U-VirtualBox-PC\Admin 8 years ago committed by Koncord
parent 35de28e239
commit 6229269506

@ -37,15 +37,20 @@ endif(BUILD_WITH_PAWN)
option(BUILD_WITH_LUA "Enable Terra/Lua language" ON)
if(BUILD_WITH_LUA)
#set(Terra_ROOT ${CMAKE_SOURCE_DIR}/external/terra/)
find_package(Terra REQUIRED)
if(WIN32)
find_package(Lua REQUIRED)
else()
find_package(Terra REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_TERRA")
endif()
set(LuaScript_Sources
Script/LangLua/LangLua.cpp
Script/LangLua/LuaFunc.cpp)
set(LuaScript_Headers ${Terra_INCLUDES} ${CMAKE_SOURCE_DIR}/extern/LuaBridge ${CMAKE_SOURCE_DIR}/extern/LuaBridge/detail
set(LuaScript_Headers ${Terra_INCLUDES} ${Lua_INCLUDES} ${CMAKE_SOURCE_DIR}/extern/LuaBridge ${CMAKE_SOURCE_DIR}/extern/LuaBridge/detail
Script/LangLua/LangLua.hpp)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_LUA")
include_directories(${Terra_INCLUDES} ${CMAKE_SOURCE_DIR}/extern/LuaBridge)
include_directories(${Terra_INCLUDES} ${Lua_INCLUDES} ${CMAKE_SOURCE_DIR}/extern/LuaBridge)
endif(BUILD_WITH_LUA)
set(NativeScript_Sources
@ -105,6 +110,7 @@ target_link_libraries(tes3mp-server
${RakNet_LIBRARY}
components
${Terra_LIBRARY}
${Lua_LIBRARY}
${Pawn_LIBRARY}
${Breakpad_Library}
)

@ -23,7 +23,9 @@ LangLua::LangLua()
{
lua = luaL_newstate();
luaL_openlibs(lua); // load all lua std libs
#if defined(ENABLE_TERRA)
terra_init(lua);
#endif
}
LangLua::~LangLua()
@ -98,7 +100,11 @@ void LangLua::LoadProgram(const char *filename)
{
int err = 0;
#if defined(ENABLE_TERRA)
if ((err = terra_loadfile(lua, filename)) != 0)
#else
if ((err =luaL_loadfile(lua, filename)) != 0)
#endif
throw runtime_error("Lua script " + string(filename) + " error (" + to_string(err) + "): \"" +
string(lua_tostring(lua, -1)) + "\"");

@ -5,7 +5,13 @@
#ifndef PLUGINSYSTEM3_LANGLUA_HPP
#define PLUGINSYSTEM3_LANGLUA_HPP
#ifdef ENABLE_TERRA
#include <terra/terra.h>
#else
#include <lua5.1/lua.hpp>
#endif
#include <extern/LuaBridge/LuaBridge.h>
#include <LuaBridge.h>
#include <boost/any.hpp>

@ -96,7 +96,7 @@ void Script::UnloadScripts()
{
//Public::DeleteAll();
scripts.clear();
#if defined (ENABLE_LUA)
#if defined (ENABLE_TERRA)
terra_llvmshutdown();
#endif
}

@ -15,11 +15,6 @@
#include <unordered_map>
#include <memory>
#if defined (ENABLE_LUA)
#include <terra/terra.h>
#include <extern/LuaBridge/LuaBridge.h>
#endif
class Script : private ScriptFunctions
{
// http://imgur.com/hU0N4EH

@ -9,7 +9,7 @@
#include <string>
#include <vector>
#if defined (ENABLE_LUA)
#include <terra/terra.h>
#include "LangLua/LangLua.hpp"
#endif
#if defined (ENABLE_PAWN)

@ -0,0 +1,70 @@
# - Try to find Lua
# Once done this will define
#
# Lua_FOUND - system has Lua
# Lua_INCLUDES - the Lua include directory
# Lua_LIBRARY - Link these to use Lua
FIND_LIBRARY (Lua_LIBRARY_RELEASE NAMES lua5.1
PATHS
ENV LD_LIBRARY_PATH
ENV LIBRARY_PATH
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
/opt/local/lib
$ENV{Lua_ROOT}/lib
)
FIND_LIBRARY (Lua_LIBRARY_DEBUG NAMES lua5.1
PATHS
ENV LD_LIBRARY_PATH
ENV LIBRARY_PATH
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
/opt/local/lib
$ENV{Lua_ROOT}/lib
)
FIND_PATH (Lua_INCLUDES lua5.1/lua.h
ENV CPATH
/usr/include
/usr/local/include
/opt/local/include
$ENV{Lua_ROOT}/include
)
IF(Lua_INCLUDES AND Lua_LIBRARY_RELEASE)
SET(Lua_FOUND TRUE)
ENDIF(Lua_INCLUDES AND Lua_LIBRARY_RELEASE)
IF(NOT Lua_LIBRARY_DEBUG)
SET(Lua_LIBRARY_DEBUG ${Lua_LIBRARY_RELEASE})
ENDIF()
IF(Lua_FOUND)
SET(Lua_INCLUDES ${Lua_INCLUDES})
find_package(ZLIB REQUIRED)
IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
SET(Lua_LIBRARY optimized ${Lua_LIBRARY_RELEASE} debug ${Lua_LIBRARY_DEBUG} ${ZLIB_LIBRARIES})
ELSE()
# if there are no configuration types and CMAKE_BUILD_TYPE has no value
# then just use the release libraries
SET(Lua_LIBRARY ${Lua_LIBRARY_RELEASE} ${ZLIB_LIBRARIES})
ENDIF()
IF(NOT Lua_FIND_QUIETLY)
MESSAGE(STATUS "Found Lua: ${Lua_LIBRARIES}")
ENDIF(NOT Lua_FIND_QUIETLY)
ELSE(Lua_FOUND)
IF(Lua_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find Lua")
ENDIF(Lua_FIND_REQUIRED)
ENDIF(Lua_FOUND)
Loading…
Cancel
Save