summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/lua/CMakeLists.txt12
-rw-r--r--lib/luaproxy/CMakeLists.txt61
-rw-r--r--lib/luaproxy/Dummy.c4
-rw-r--r--lib/luaproxy/lua5.1.def115
-rw-r--r--lib/luaproxy/lua5.1.lua140
-rw-r--r--lib/md5/CMakeLists.txt12
-rw-r--r--lib/md5/md5.cpp369
-rw-r--r--lib/md5/md5.h93
-rw-r--r--lib/sqlite/CMakeLists.txt9
-rw-r--r--lib/tolua++/CMakeLists.txt5
10 files changed, 334 insertions, 486 deletions
diff --git a/lib/lua/CMakeLists.txt b/lib/lua/CMakeLists.txt
index 6e5e0f565..0a04d1ee6 100644
--- a/lib/lua/CMakeLists.txt
+++ b/lib/lua/CMakeLists.txt
@@ -11,21 +11,16 @@ file(GLOB SOURCE
list(REMOVE_ITEM SOURCE "${PROJECT_SOURCE_DIR}/src/lua.c" "${PROJECT_SOURCE_DIR}/src/luac.c")
# add headers to MSVC project files:
-if (WIN32)
+if (MSVC)
file(GLOB HEADERS "src/*.h")
list(REMOVE_ITEM SOURCE "${PROJECT_SOURCE_DIR}/src/lua.h" "${PROJECT_SOURCE_DIR}/src/luac.h")
set(SOURCE ${SOURCE} ${HEADERS})
source_group("Sources" FILES ${SOURCE})
endif()
+
# Lua needs to be linked dynamically on Windows and statically on *nix, so that LuaRocks work
if (WIN32)
-
- #for compiliers other than msvc we need to tell lua that its building as a dll
- if (NOT MSVC)
- add_flags_cxx(-DLUA_BUILD_AS_DLL=1)
- endif()
-
add_library(lua SHARED ${SOURCE})
set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/MCServer)
@@ -53,7 +48,7 @@ if (WIN32)
)
endif()
- set_target_properties(lua PROPERTIES OUTPUT_NAME "lua51")
+ set_target_properties(lua PROPERTIES OUTPUT_NAME "lua51" PREFIX "")
# NOTE: The DLL for each configuration is stored at the same place, thus overwriting each other.
# This is known, however such behavior is needed for LuaRocks - they always load "lua5.1.dll" or "lua51.dll"
@@ -63,6 +58,7 @@ else()
add_library(lua ${SOURCE})
endif()
+
# Tell Lua what dynamic loader to use (for LuaRocks):
if (UNIX)
add_definitions(-DLUA_USE_DLOPEN)
diff --git a/lib/luaproxy/CMakeLists.txt b/lib/luaproxy/CMakeLists.txt
new file mode 100644
index 000000000..58ca87cd3
--- /dev/null
+++ b/lib/luaproxy/CMakeLists.txt
@@ -0,0 +1,61 @@
+
+# This project adds a Lua Proxy DLL on Windows
+# By an unfortunate choice in the popular LuaBinaries distribution, there are two names for the Lua DLL on Windows: lua51.dll and lua5.1.dll.
+# Some binary Lua packages are built for one, the others for the other. Messy!
+# In order to support both package flavors, we create a "proxy DLL":
+# Basically the lua5.1.dll has its PE Exports section manipulated so that it points each exported function to its lua51.dll implementation.
+# Effectively, this forwards all calls from lua5.1.dll to lua51.dll without any performance costs (the forwarding is done in the Windows PE loader on app start).
+
+# This project creates the proxy DLL by using a specially crafted .DEF file that is used to link the Proxy DLL.
+# Note that it has been tested only on MSVC, it might not work with other compilers.
+# The initial implementation was taken from http://lua-users.org/wiki/LuaProxyDllFour , but adapted to MSVC
+
+
+
+
+if (WIN32)
+
+ if (MSVC)
+ # Tell the linker to use the DEF file to generate the proxy:
+ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NOENTRY /DEF:lua5.1.def /MANIFEST:NO")
+ set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NOENTRY /DEF:lua5.1.def /MANIFEST:NO")
+ set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /NOENTRY /DEF:lua5.1.def /MANIFEST:NO")
+ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NOENTRY /DEF:lua5.1.def /MANIFEST:NO")
+ set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /NOENTRY /DEF:lua5.1.def /MANIFEST:NO")
+ set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "${CMAKE_MODULE_LINKER_FLAGS_DEBUG} /NOENTRY /DEF:lua5.1.def /MANIFEST:NO")
+ elseif (MINGW)
+ # MinGW requires no further flags and has been tested
+ else()
+ message ("LuaProxy: This cmake code has not been tested on your compiler. Please report your success or failure in the forum.")
+ endif()
+
+ add_library(luaproxy SHARED "lua5.1.def" "Dummy.c")
+ set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/MCServer)
+ set_target_properties(luaproxy PROPERTIES
+ OUTPUT_NAME "lua5.1"
+ PREFIX ""
+ )
+ target_link_libraries(luaproxy lua)
+
+ # Output the executable into the $/MCServer folder, so that MCServer can find it:
+ set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/MCServer)
+ SET_TARGET_PROPERTIES(luaproxy PROPERTIES
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/MCServer
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/MCServer
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUGPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASEPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/MCServer
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/MCServer
+ LIBRARY_OUTPUT_DIRECTORY_DEBUGPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ LIBRARY_OUTPUT_DIRECTORY_RELEASEPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/MCServer
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/MCServer
+ RUNTIME_OUTPUT_DIRECTORY_DEBUGPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ RUNTIME_OUTPUT_DIRECTORY_RELEASEPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ )
+
+else()
+
+ message (FATAL_ERROR "This project is needed only for Windows, modify your cmake file not to include it on Linux")
+
+endif()
diff --git a/lib/luaproxy/Dummy.c b/lib/luaproxy/Dummy.c
new file mode 100644
index 000000000..4018d8392
--- /dev/null
+++ b/lib/luaproxy/Dummy.c
@@ -0,0 +1,4 @@
+
+// Dummy.c
+
+// Because the MSVC compiler needs at least one C file to compile the project
diff --git a/lib/luaproxy/lua5.1.def b/lib/luaproxy/lua5.1.def
new file mode 100644
index 000000000..42986d22f
--- /dev/null
+++ b/lib/luaproxy/lua5.1.def
@@ -0,0 +1,115 @@
+EXPORTS
+ luaL_addlstring=lua51.luaL_addlstring
+ luaL_addstring=lua51.luaL_addstring
+ luaL_addvalue=lua51.luaL_addvalue
+ luaL_argerror=lua51.luaL_argerror
+ luaL_buffinit=lua51.luaL_buffinit
+ luaL_callmeta=lua51.luaL_callmeta
+ luaL_checkany=lua51.luaL_checkany
+ luaL_checkinteger=lua51.luaL_checkinteger
+ luaL_checklstring=lua51.luaL_checklstring
+ luaL_checknumber=lua51.luaL_checknumber
+ luaL_checkoption=lua51.luaL_checkoption
+ luaL_checkstack=lua51.luaL_checkstack
+ luaL_checktype=lua51.luaL_checktype
+ luaL_checkudata=lua51.luaL_checkudata
+ luaL_error=lua51.luaL_error
+ luaL_findtable=lua51.luaL_findtable
+ luaL_getmetafield=lua51.luaL_getmetafield
+ luaL_gsub=lua51.luaL_gsub
+ luaL_loadbuffer=lua51.luaL_loadbuffer
+ luaL_loadfile=lua51.luaL_loadfile
+ luaL_loadstring=lua51.luaL_loadstring
+ luaL_newmetatable=lua51.luaL_newmetatable
+ luaL_newstate=lua51.luaL_newstate
+ luaL_openlib=lua51.luaL_openlib
+ luaL_openlibs=lua51.luaL_openlibs
+ luaL_optinteger=lua51.luaL_optinteger
+ luaL_optlstring=lua51.luaL_optlstring
+ luaL_optnumber=lua51.luaL_optnumber
+ luaL_prepbuffer=lua51.luaL_prepbuffer
+ luaL_pushresult=lua51.luaL_pushresult
+ luaL_ref=lua51.luaL_ref
+ luaL_register=lua51.luaL_register
+ luaL_typerror=lua51.luaL_typerror
+ luaL_unref=lua51.luaL_unref
+ luaL_where=lua51.luaL_where
+ lua_atpanic=lua51.lua_atpanic
+ lua_call=lua51.lua_call
+ lua_checkstack=lua51.lua_checkstack
+ lua_close=lua51.lua_close
+ lua_concat=lua51.lua_concat
+ lua_cpcall=lua51.lua_cpcall
+ lua_createtable=lua51.lua_createtable
+ lua_dump=lua51.lua_dump
+ lua_equal=lua51.lua_equal
+ lua_error=lua51.lua_error
+ lua_gc=lua51.lua_gc
+ lua_getallocf=lua51.lua_getallocf
+ lua_getfenv=lua51.lua_getfenv
+ lua_getfield=lua51.lua_getfield
+ lua_gethook=lua51.lua_gethook
+ lua_gethookcount=lua51.lua_gethookcount
+ lua_gethookmask=lua51.lua_gethookmask
+ lua_getinfo=lua51.lua_getinfo
+ lua_getlocal=lua51.lua_getlocal
+ lua_getmetatable=lua51.lua_getmetatable
+ lua_getstack=lua51.lua_getstack
+ lua_gettable=lua51.lua_gettable
+ lua_gettop=lua51.lua_gettop
+ lua_getupvalue=lua51.lua_getupvalue
+ lua_insert=lua51.lua_insert
+ lua_iscfunction=lua51.lua_iscfunction
+ lua_isnumber=lua51.lua_isnumber
+ lua_isstring=lua51.lua_isstring
+ lua_isuserdata=lua51.lua_isuserdata
+ lua_lessthan=lua51.lua_lessthan
+ lua_load=lua51.lua_load
+ lua_newstate=lua51.lua_newstate
+ lua_newthread=lua51.lua_newthread
+ lua_newuserdata=lua51.lua_newuserdata
+ lua_next=lua51.lua_next
+ lua_objlen=lua51.lua_objlen
+ lua_pcall=lua51.lua_pcall
+ lua_pushboolean=lua51.lua_pushboolean
+ lua_pushcclosure=lua51.lua_pushcclosure
+ lua_pushfstring=lua51.lua_pushfstring
+ lua_pushinteger=lua51.lua_pushinteger
+ lua_pushlightuserdata=lua51.lua_pushlightuserdata
+ lua_pushlstring=lua51.lua_pushlstring
+ lua_pushnil=lua51.lua_pushnil
+ lua_pushnumber=lua51.lua_pushnumber
+ lua_pushstring=lua51.lua_pushstring
+ lua_pushthread=lua51.lua_pushthread
+ lua_pushvalue=lua51.lua_pushvalue
+ lua_pushvfstring=lua51.lua_pushvfstring
+ lua_rawequal=lua51.lua_rawequal
+ lua_rawget=lua51.lua_rawget
+ lua_rawgeti=lua51.lua_rawgeti
+ lua_rawset=lua51.lua_rawset
+ lua_rawseti=lua51.lua_rawseti
+ lua_remove=lua51.lua_remove
+ lua_replace=lua51.lua_replace
+ lua_resume=lua51.lua_resume
+ lua_setallocf=lua51.lua_setallocf
+ lua_setfenv=lua51.lua_setfenv
+ lua_setfield=lua51.lua_setfield
+ lua_sethook=lua51.lua_sethook
+ lua_setlocal=lua51.lua_setlocal
+ lua_setmetatable=lua51.lua_setmetatable
+ lua_settable=lua51.lua_settable
+ lua_settop=lua51.lua_settop
+ lua_setupvalue=lua51.lua_setupvalue
+ lua_status=lua51.lua_status
+ lua_toboolean=lua51.lua_toboolean
+ lua_tocfunction=lua51.lua_tocfunction
+ lua_tointeger=lua51.lua_tointeger
+ lua_tolstring=lua51.lua_tolstring
+ lua_tonumber=lua51.lua_tonumber
+ lua_topointer=lua51.lua_topointer
+ lua_tothread=lua51.lua_tothread
+ lua_touserdata=lua51.lua_touserdata
+ lua_type=lua51.lua_type
+ lua_typename=lua51.lua_typename
+ lua_xmove=lua51.lua_xmove
+ lua_yield=lua51.lua_yield
diff --git a/lib/luaproxy/lua5.1.lua b/lib/luaproxy/lua5.1.lua
new file mode 100644
index 000000000..b826e12d0
--- /dev/null
+++ b/lib/luaproxy/lua5.1.lua
@@ -0,0 +1,140 @@
+
+-- lua5.1.lua
+-- Generates the lua5.1.def file from the list of Lua symbols below
+
+
+
+
+
+local symbols =
+{
+ "luaL_addlstring",
+ "luaL_addstring",
+ "luaL_addvalue",
+ "luaL_argerror",
+ "luaL_buffinit",
+ "luaL_callmeta",
+ "luaL_checkany",
+ "luaL_checkinteger",
+ "luaL_checklstring",
+ "luaL_checknumber",
+ "luaL_checkoption",
+ "luaL_checkstack",
+ "luaL_checktype",
+ "luaL_checkudata",
+ "luaL_error",
+ "luaL_findtable",
+ "luaL_getmetafield",
+ "luaL_gsub",
+ "luaL_loadbuffer",
+ "luaL_loadfile",
+ "luaL_loadstring",
+ "luaL_newmetatable",
+ "luaL_newstate",
+ "luaL_openlib",
+ "luaL_openlibs",
+ "luaL_optinteger",
+ "luaL_optlstring",
+ "luaL_optnumber",
+ "luaL_prepbuffer",
+ "luaL_pushresult",
+ "luaL_ref",
+ "luaL_register",
+ "luaL_typerror",
+ "luaL_unref",
+ "luaL_where",
+ "lua_atpanic",
+ "lua_call",
+ "lua_checkstack",
+ "lua_close",
+ "lua_concat",
+ "lua_cpcall",
+ "lua_createtable",
+ "lua_dump",
+ "lua_equal",
+ "lua_error",
+ "lua_gc",
+ "lua_getallocf",
+ "lua_getfenv",
+ "lua_getfield",
+ "lua_gethook",
+ "lua_gethookcount",
+ "lua_gethookmask",
+ "lua_getinfo",
+ "lua_getlocal",
+ "lua_getmetatable",
+ "lua_getstack",
+ "lua_gettable",
+ "lua_gettop",
+ "lua_getupvalue",
+ "lua_insert",
+ "lua_iscfunction",
+ "lua_isnumber",
+ "lua_isstring",
+ "lua_isuserdata",
+ "lua_lessthan",
+ "lua_load",
+ "lua_newstate",
+ "lua_newthread",
+ "lua_newuserdata",
+ "lua_next",
+ "lua_objlen",
+ "lua_pcall",
+ "lua_pushboolean",
+ "lua_pushcclosure",
+ "lua_pushfstring",
+ "lua_pushinteger",
+ "lua_pushlightuserdata",
+ "lua_pushlstring",
+ "lua_pushnil",
+ "lua_pushnumber",
+ "lua_pushstring",
+ "lua_pushthread",
+ "lua_pushvalue",
+ "lua_pushvfstring",
+ "lua_rawequal",
+ "lua_rawget",
+ "lua_rawgeti",
+ "lua_rawset",
+ "lua_rawseti",
+ "lua_remove",
+ "lua_replace",
+ "lua_resume",
+ "lua_setallocf",
+ "lua_setfenv",
+ "lua_setfield",
+ "lua_sethook",
+ "lua_setlocal",
+ "lua_setmetatable",
+ "lua_settable",
+ "lua_settop",
+ "lua_setupvalue",
+ "lua_status",
+ "lua_toboolean",
+ "lua_tocfunction",
+ "lua_tointeger",
+ "lua_tolstring",
+ "lua_tonumber",
+ "lua_topointer",
+ "lua_tothread",
+ "lua_touserdata",
+ "lua_type",
+ "lua_typename",
+ "lua_xmove",
+ "lua_yield",
+ -- "luaopen_base",
+ -- "luaopen_debug",
+ -- "luaopen_io",
+ -- "luaopen_math",
+ -- "luaopen_os",
+ -- "luaopen_package",
+ -- "luaopen_string",
+ -- "luaopen_table",
+}
+
+local def = io.open("lua5.1.def", "w")
+def:write("EXPORTS\n")
+for _,symbol in ipairs(symbols) do
+ def:write("\t" .. symbol .. "=lua51." .. symbol .. "\n")
+end
+def:close()
diff --git a/lib/md5/CMakeLists.txt b/lib/md5/CMakeLists.txt
deleted file mode 100644
index cd9fe6320..000000000
--- a/lib/md5/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-
-cmake_minimum_required (VERSION 2.6)
-project (md5)
-
-include_directories ("${PROJECT_SOURCE_DIR}/../../src/")
-
-file(GLOB SOURCE
- "*.cpp"
- "*.h"
-)
-
-add_library(md5 ${SOURCE})
diff --git a/lib/md5/md5.cpp b/lib/md5/md5.cpp
deleted file mode 100644
index eae0fc3f2..000000000
--- a/lib/md5/md5.cpp
+++ /dev/null
@@ -1,369 +0,0 @@
-/* MD5
- converted to C++ class by Frank Thilo (thilo@unix-ag.org)
- for bzflag (http://www.bzflag.org)
-
- based on:
-
- md5.h and md5.c
- reference implemantion of RFC 1321
-
- Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-
-*/
-
-/* interface header */
-#include "md5.h"
-
-/* system implementation headers */
-#include <stdio.h>
-
-#ifndef _WIN32
- #include <cstring>
-#endif
-
-
-
-
-
-// Constants for MD5Transform routine.
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
-
-///////////////////////////////////////////////
-
-// F, G, H and I are basic MD5 functions.
-inline MD5::uint4 MD5::F(uint4 x, uint4 y, uint4 z) {
- return x&y | ~x&z;
-}
-
-inline MD5::uint4 MD5::G(uint4 x, uint4 y, uint4 z) {
- return x&z | y&~z;
-}
-
-inline MD5::uint4 MD5::H(uint4 x, uint4 y, uint4 z) {
- return x^y^z;
-}
-
-inline MD5::uint4 MD5::I(uint4 x, uint4 y, uint4 z) {
- return y ^ (x | ~z);
-}
-
-// rotate_left rotates x left n bits.
-inline MD5::uint4 MD5::rotate_left(uint4 x, int n) {
- return (x << n) | (x >> (32-n));
-}
-
-// FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
-// Rotation is separate from addition to prevent recomputation.
-inline void MD5::FF(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac) {
- a = rotate_left(a+ F(b,c,d) + x + ac, s) + b;
-}
-
-inline void MD5::GG(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac) {
- a = rotate_left(a + G(b,c,d) + x + ac, s) + b;
-}
-
-inline void MD5::HH(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac) {
- a = rotate_left(a + H(b,c,d) + x + ac, s) + b;
-}
-
-inline void MD5::II(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac) {
- a = rotate_left(a + I(b,c,d) + x + ac, s) + b;
-}
-
-//////////////////////////////////////////////
-
-// default ctor, just initailize
-MD5::MD5()
-{
- init();
-}
-
-//////////////////////////////////////////////
-
-// nifty shortcut ctor, compute MD5 for string and finalize it right away
-MD5::MD5(const std::string &text)
-{
- init();
- update(text.c_str(), text.length());
- finalize();
-}
-
-//////////////////////////////
-
-void MD5::init()
-{
- finalized=false;
-
- count[0] = 0;
- count[1] = 0;
-
- // load magic initialization constants.
- state[0] = 0x67452301;
- state[1] = 0xefcdab89;
- state[2] = 0x98badcfe;
- state[3] = 0x10325476;
-}
-
-//////////////////////////////
-
-// decodes input (unsigned char) into output (uint4). Assumes len is a multiple of 4.
-void MD5::decode(uint4 output[], const uint1 input[], size_type len)
-{
- for (unsigned int i = 0, j = 0; j < len; i++, j += 4)
- output[i] = ((uint4)input[j]) | (((uint4)input[j+1]) << 8) |
- (((uint4)input[j+2]) << 16) | (((uint4)input[j+3]) << 24);
-}
-
-//////////////////////////////
-
-// encodes input (uint4) into output (unsigned char). Assumes len is
-// a multiple of 4.
-void MD5::encode(uint1 output[], const uint4 input[], size_type len)
-{
- for (size_type i = 0, j = 0; j < len; i++, j += 4) {
- output[j] = input[i] & 0xff;
- output[j+1] = (input[i] >> 8) & 0xff;
- output[j+2] = (input[i] >> 16) & 0xff;
- output[j+3] = (input[i] >> 24) & 0xff;
- }
-}
-
-//////////////////////////////
-
-// apply MD5 algo on a block
-void MD5::transform(const uint1 block[blocksize])
-{
- uint4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
- decode (x, block, blocksize);
-
- /* Round 1 */
- FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
- FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
- FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
- FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
- FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
- FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
- FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
- FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
- FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
- FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
- FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
- FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
- FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
- FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
- FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
- FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
-
- /* Round 2 */
- GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
- GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
- GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
- GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
- GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
- GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */
- GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
- GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
- GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
- GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
- GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
- GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
- GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
- GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
- GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
- GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
-
- /* Round 3 */
- HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
- HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
- HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
- HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
- HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
- HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
- HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
- HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
- HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
- HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
- HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
- HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
- HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
- HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
- HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
- HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
-
- /* Round 4 */
- II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
- II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
- II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
- II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
- II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
- II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
- II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
- II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
- II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
- II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
- II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
- II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
- II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
- II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
- II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
- II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
-
- state[0] += a;
- state[1] += b;
- state[2] += c;
- state[3] += d;
-
- // Zeroize sensitive information.
- memset(x, 0, sizeof x);
-}
-
-//////////////////////////////
-
-// MD5 block update operation. Continues an MD5 message-digest
-// operation, processing another message block
-void MD5::update(const unsigned char input[], size_type length)
-{
- // compute number of bytes mod 64
- size_type index = count[0] / 8 % blocksize;
-
- // Update number of bits
- if ((count[0] += (length << 3)) < (length << 3))
- count[1]++;
- count[1] += (length >> 29);
-
- // number of bytes we need to fill in buffer
- size_type firstpart = 64 - index;
-
- size_type i;
-
- // transform as many times as possible.
- if (length >= firstpart)
- {
- // fill buffer first, transform
- memcpy(&buffer[index], input, firstpart);
- transform(buffer);
-
- // transform chunks of blocksize (64 bytes)
- for (i = firstpart; i + blocksize <= length; i += blocksize)
- transform(&input[i]);
-
- index = 0;
- }
- else
- i = 0;
-
- // buffer remaining input
- memcpy(&buffer[index], &input[i], length-i);
-}
-
-//////////////////////////////
-
-// for convenience provide a verson with signed char
-void MD5::update(const char input[], size_type length)
-{
- update((const unsigned char*)input, length);
-}
-
-//////////////////////////////
-
-// MD5 finalization. Ends an MD5 message-digest operation, writing the
-// the message digest and zeroizing the context.
-MD5& MD5::finalize()
-{
- static unsigned char padding[64] = {
- 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- };
-
- if (!finalized) {
- // Save number of bits
- unsigned char bits[8];
- encode(bits, count, 8);
-
- // pad out to 56 mod 64.
- size_type index = count[0] / 8 % 64;
- size_type padLen = (index < 56) ? (56 - index) : (120 - index);
- update(padding, padLen);
-
- // Append length (before padding)
- update(bits, 8);
-
- // Store state in digest
- encode(digest, state, 16);
-
- // Zeroize sensitive information.
- memset(buffer, 0, sizeof buffer);
- memset(count, 0, sizeof count);
-
- finalized=true;
- }
-
- return *this;
-}
-
-//////////////////////////////
-
-// return hex representation of digest as string
-std::string MD5::hexdigest() const
-{
- if (!finalized)
- return "";
-
- char buf[33];
- for (int i=0; i<16; i++)
- sprintf(buf+i*2, "%02x", digest[i]);
- buf[32]=0;
-
- return std::string(buf);
-}
-
-//////////////////////////////
-
-std::ostream& operator<<(std::ostream& out, MD5 md5)
-{
- return out << md5.hexdigest();
-}
-
-//////////////////////////////
-
-std::string md5(const std::string & str)
-{
- MD5 md5 = MD5(str);
-
- return md5.hexdigest();
-}
diff --git a/lib/md5/md5.h b/lib/md5/md5.h
deleted file mode 100644
index 3aa88ac22..000000000
--- a/lib/md5/md5.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* MD5
- converted to C++ class by Frank Thilo (thilo@unix-ag.org)
- for bzflag (http://www.bzflag.org)
-
- based on:
-
- md5.h and md5.c
- reference implementation of RFC 1321
-
- Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-
-*/
-
-#ifndef BZF_MD5_H
-#define BZF_MD5_H
-
-#include <string>
-#include <iostream>
-
-
-// a small class for calculating MD5 hashes of strings or byte arrays
-// it is not meant to be fast or secure
-//
-// usage: 1) feed it blocks of uchars with update()
-// 2) finalize()
-// 3) get hexdigest() string
-// or
-// MD5(std::string).hexdigest()
-//
-// assumes that char is 8 bit and int is 32 bit
-class MD5
-{
-public:
- typedef unsigned int size_type; // must be 32bit
-
- MD5();
- MD5(const std::string& text);
- void update(const unsigned char *buf, size_type length);
- void update(const char *buf, size_type length);
- MD5& finalize();
- std::string hexdigest() const;
- friend std::ostream& operator<<(std::ostream&, MD5 md5);
-
-private:
- void init();
- typedef unsigned char uint1; // 8bit
- typedef unsigned int uint4; // 32bit
- enum {blocksize = 64}; // VC6 won't eat a const static int here
-
- void transform(const uint1 block[blocksize]);
- static void decode(uint4 output[], const uint1 input[], size_type len);
- static void encode(uint1 output[], const uint4 input[], size_type len);
-
- bool finalized;
- uint1 buffer[blocksize]; // bytes that didn't fit in last 64 byte chunk
- uint4 count[2]; // 64bit counter for number of bits (lo, hi)
- uint4 state[4]; // digest so far
- uint1 digest[16]; // the result
-
- // low level logic operations
- static inline uint4 F(uint4 x, uint4 y, uint4 z);
- static inline uint4 G(uint4 x, uint4 y, uint4 z);
- static inline uint4 H(uint4 x, uint4 y, uint4 z);
- static inline uint4 I(uint4 x, uint4 y, uint4 z);
- static inline uint4 rotate_left(uint4 x, int n);
- static inline void FF(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac);
- static inline void GG(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac);
- static inline void HH(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac);
- static inline void II(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac);
-};
-
-std::string md5(const std::string & str);
-
-#endif
diff --git a/lib/sqlite/CMakeLists.txt b/lib/sqlite/CMakeLists.txt
index 9add2280b..993dac146 100644
--- a/lib/sqlite/CMakeLists.txt
+++ b/lib/sqlite/CMakeLists.txt
@@ -9,8 +9,14 @@ file(GLOB SOURCE
)
-# add headers to MSVC project files:
+# Lua is required as a DLL for LuaSQLite:
if (WIN32)
+ add_definitions(-DLUA_BUILD_AS_DLL)
+endif()
+
+
+# add headers to MSVC project files:
+if (MSVC)
file(GLOB HEADERS "src/*.h")
list(REMOVE_ITEM SOURCE "${PROJECT_SOURCE_DIR}/src/lua.h" "${PROJECT_SOURCE_DIR}/src/luac.h")
set(SOURCE ${SOURCE} ${HEADERS})
@@ -23,6 +29,7 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
endif()
add_library(sqlite ${SOURCE})
+target_link_libraries(sqlite lua)
if (UNIX)
target_link_libraries(sqlite ${DYNAMIC_LOADER})
diff --git a/lib/tolua++/CMakeLists.txt b/lib/tolua++/CMakeLists.txt
index e68a0e15b..12054323b 100644
--- a/lib/tolua++/CMakeLists.txt
+++ b/lib/tolua++/CMakeLists.txt
@@ -44,14 +44,13 @@ file(GLOB BIN_SOURCE
"src/bin/*.c"
)
-
-
add_executable(tolua ${BIN_SOURCE})
add_library(tolualib ${LIB_SOURCE})
+target_link_libraries(tolualib lua)
#m is the standard math librarys
if(UNIX)
target_link_libraries(tolua m ${DYNAMIC_LOADER})
endif()
-target_link_libraries(tolua lua tolualib)
+target_link_libraries(tolua tolualib lua)