commit
194a1b208f
37
.gitignore
vendored
37
.gitignore
vendored
@ -57,7 +57,44 @@ MCServer.dir/
|
|||||||
|
|
||||||
#win32 cmake stuff
|
#win32 cmake stuff
|
||||||
*.vcxproj
|
*.vcxproj
|
||||||
|
*.vcproj
|
||||||
*.vcxproj.filters
|
*.vcxproj.filters
|
||||||
*.opensdf
|
*.opensdf
|
||||||
*.sdf
|
*.sdf
|
||||||
*.sln
|
*.sln
|
||||||
|
|
||||||
|
#cmake output folders
|
||||||
|
ZERO_CHECK.dir/
|
||||||
|
lib/cryptopp/Debug/
|
||||||
|
lib/cryptopp/Release/
|
||||||
|
lib/cryptopp/cryptopp.dir/
|
||||||
|
lib/expat/Debug/
|
||||||
|
lib/expat/Release/
|
||||||
|
lib/expat/expat.dir/
|
||||||
|
lib/inifile/Debug/
|
||||||
|
lib/inifile/Release/
|
||||||
|
lib/inifile/inifile.dir/
|
||||||
|
lib/jsoncpp/Debug/
|
||||||
|
lib/jsoncpp/Release/
|
||||||
|
lib/jsoncpp/jsoncpp.dir/
|
||||||
|
lib/lua/Debug/
|
||||||
|
lib/lua/Release/
|
||||||
|
lib/lua/lua.dir/
|
||||||
|
lib/luaexpat/Debug/
|
||||||
|
lib/luaexpat/Release/
|
||||||
|
lib/luaexpat/luaexpat.dir/
|
||||||
|
lib/md5/Debug/
|
||||||
|
lib/md5/Release/
|
||||||
|
lib/md5/md5.dir/
|
||||||
|
lib/sqlite/Debug/
|
||||||
|
lib/sqlite/Release/
|
||||||
|
lib/sqlite/sqlite.dir/
|
||||||
|
lib/tolua++/Debug/
|
||||||
|
lib/tolua++/Release/
|
||||||
|
lib/tolua++/tolua.dir/
|
||||||
|
lib/tolua++/tolualib.dir/
|
||||||
|
lib/zlib/Debug/
|
||||||
|
lib/zlib/Release/
|
||||||
|
lib/zlib/zlib.dir/
|
||||||
|
src/Debug/
|
||||||
|
src/Release/
|
||||||
|
@ -83,7 +83,13 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|||||||
add_definitions(-DCRYPTOPP_DISABLE_ASM)
|
add_definitions(-DCRYPTOPP_DISABLE_ASM)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_definitions(-DLUA_USE_DLOPEN)
|
# Under Windows, we need Lua as DLL; on *nix we need it linked statically:
|
||||||
|
if (WIN32)
|
||||||
|
add_definitions(-DLUA_BUILD_AS_DLL)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# The Expat library is linked in statically, make the source files aware of that:
|
||||||
|
add_definitions(-DXML_STATIC)
|
||||||
|
|
||||||
add_subdirectory(lib/inifile/)
|
add_subdirectory(lib/inifile/)
|
||||||
add_subdirectory(lib/jsoncpp/)
|
add_subdirectory(lib/jsoncpp/)
|
||||||
@ -106,10 +112,13 @@ else()
|
|||||||
add_flags("/Wall")
|
add_flags("/Wall")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE_BAK}")
|
set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE_BAK}")
|
||||||
|
|
||||||
|
if (NOT WIN32)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -rdynamic")
|
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -rdynamic")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -rdynamic")
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -rdynamic")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_PROFILE} -rdynamic")
|
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_PROFILE} -rdynamic")
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory (src)
|
add_subdirectory (src)
|
||||||
|
|
||||||
|
@ -2,10 +2,15 @@
|
|||||||
cmake_minimum_required (VERSION 2.6)
|
cmake_minimum_required (VERSION 2.6)
|
||||||
project (expat)
|
project (expat)
|
||||||
|
|
||||||
include_directories ("${PROJECT_SOURCE_DIR}/../../src/")
|
|
||||||
|
|
||||||
file(GLOB SOURCE
|
file(GLOB SOURCE
|
||||||
"*.c"
|
"*.c"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# add headers to MSVC project files:
|
||||||
|
if (WIN32)
|
||||||
|
file(GLOB HEADERS "*.h")
|
||||||
|
set(SOURCE ${SOURCE} ${HEADERS})
|
||||||
|
source_group("Sources" FILES ${SOURCE})
|
||||||
|
endif()
|
||||||
|
|
||||||
add_library(expat ${SOURCE})
|
add_library(expat ${SOURCE})
|
||||||
|
@ -8,10 +8,21 @@ file(GLOB SOURCE
|
|||||||
"src/*.c"
|
"src/*.c"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(${STATIC_LUA})
|
list(REMOVE_ITEM SOURCE "${PROJECT_SOURCE_DIR}/src/lua.c" "${PROJECT_SOURCE_DIR}/src/luac.c")
|
||||||
add_library(lua ${SOURCE})
|
|
||||||
else()
|
# add headers to MSVC project files:
|
||||||
|
if (WIN32)
|
||||||
|
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)
|
||||||
add_library(lua SHARED ${SOURCE})
|
add_library(lua SHARED ${SOURCE})
|
||||||
|
else()
|
||||||
|
add_library(lua ${SOURCE})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
|
@ -2,13 +2,24 @@
|
|||||||
cmake_minimum_required (VERSION 2.6)
|
cmake_minimum_required (VERSION 2.6)
|
||||||
project (sqlite)
|
project (sqlite)
|
||||||
|
|
||||||
include_directories ("${PROJECT_SOURCE_DIR}/../../src/")
|
|
||||||
include_directories ("${PROJECT_SOURCE_DIR}/../")
|
include_directories ("${PROJECT_SOURCE_DIR}/../")
|
||||||
|
|
||||||
file(GLOB SOURCE
|
file(GLOB SOURCE
|
||||||
"*.c"
|
"*.c"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# add headers to MSVC project files:
|
||||||
|
if (WIN32)
|
||||||
|
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()
|
||||||
|
|
||||||
|
|
||||||
add_library(sqlite ${SOURCE})
|
add_library(sqlite ${SOURCE})
|
||||||
|
|
||||||
|
if (UNIX)
|
||||||
target_link_libraries(sqlite dl)
|
target_link_libraries(sqlite dl)
|
||||||
|
endif()
|
||||||
|
@ -18,7 +18,7 @@ extern "C"
|
|||||||
// fwd: SQLite/lsqlite3.c
|
// fwd: SQLite/lsqlite3.c
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
LUALIB_API int luaopen_lsqlite3(lua_State * L);
|
int luaopen_lsqlite3(lua_State * L);
|
||||||
}
|
}
|
||||||
|
|
||||||
// fwd: LuaExpat/lxplib.c:
|
// fwd: LuaExpat/lxplib.c:
|
||||||
@ -309,7 +309,7 @@ void cLuaState::Push(const AStringVector & a_Vector)
|
|||||||
{
|
{
|
||||||
ASSERT(IsValid());
|
ASSERT(IsValid());
|
||||||
|
|
||||||
lua_createtable(m_LuaState, a_Vector.size(), 0);
|
lua_createtable(m_LuaState, (int)a_Vector.size(), 0);
|
||||||
int newTable = lua_gettop(m_LuaState);
|
int newTable = lua_gettop(m_LuaState);
|
||||||
int index = 1;
|
int index = 1;
|
||||||
for (AStringVector::const_iterator itr = a_Vector.begin(), end = a_Vector.end(); itr != end; ++itr, ++index)
|
for (AStringVector::const_iterator itr = a_Vector.begin(), end = a_Vector.end(); itr != end; ++itr, ++index)
|
||||||
|
@ -12,8 +12,9 @@ include_directories (SYSTEM "${PROJECT_SOURCE_DIR}/../lib/jsoncpp/include")
|
|||||||
set(FOLDERS OSSupport HTTPServer Bindings Items Blocks Protocol Generating)
|
set(FOLDERS OSSupport HTTPServer Bindings Items Blocks Protocol Generating)
|
||||||
set(FOLDERS ${FOLDERS} WorldStorage Mobs Entities Simulator UI BlockEntities)
|
set(FOLDERS ${FOLDERS} WorldStorage Mobs Entities Simulator UI BlockEntities)
|
||||||
|
|
||||||
if(NOT WIN32)
|
|
||||||
|
|
||||||
|
|
||||||
|
if (NOT WIN32)
|
||||||
foreach(folder ${FOLDERS})
|
foreach(folder ${FOLDERS})
|
||||||
add_subdirectory(${folder})
|
add_subdirectory(${folder})
|
||||||
endforeach(folder)
|
endforeach(folder)
|
||||||
@ -21,6 +22,9 @@ endforeach(folder)
|
|||||||
file(GLOB SOURCE
|
file(GLOB SOURCE
|
||||||
"*.cpp"
|
"*.cpp"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
list(REMOVE_ITEM SOURCE "${PROJECT_SOURCE_DIR}/StackWalker.cpp" "${PROJECT_SOURCE_DIR}/LeakFinder.cpp")
|
||||||
|
|
||||||
else ()
|
else ()
|
||||||
|
|
||||||
function(includefolder PATH)
|
function(includefolder PATH)
|
||||||
@ -29,7 +33,6 @@ function(includefolder PATH)
|
|||||||
"${PATH}/*.h"
|
"${PATH}/*.h"
|
||||||
)
|
)
|
||||||
source_group("${PATH}" FILES ${FOLDER_FILES})
|
source_group("${PATH}" FILES ${FOLDER_FILES})
|
||||||
|
|
||||||
endfunction(includefolder)
|
endfunction(includefolder)
|
||||||
|
|
||||||
foreach(folder ${FOLDERS})
|
foreach(folder ${FOLDERS})
|
||||||
@ -45,27 +48,19 @@ include_directories("${PROJECT_SOURCE_DIR}")
|
|||||||
|
|
||||||
source_group("" FILES ${SOURCE})
|
source_group("" FILES ${SOURCE})
|
||||||
|
|
||||||
#precompiledheaders
|
# Precompiled headers (1st part)
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(
|
||||||
file(GLOB_RECURSE HEADERS
|
Globals.cpp PROPERTIES COMPILE_FLAGS "/Yc\"Globals.h\""
|
||||||
"*.h"
|
)
|
||||||
|
# CMake cannot "remove" the precompiled header flags, so we use a dummy precompiled header compatible with just this one file:
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(
|
||||||
|
Bindings/Bindings.cpp PROPERTIES COMPILE_FLAGS "/Yc\"string.h\" /Fp\"$(IntDir)/Bindings.pch\""
|
||||||
|
)
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(
|
||||||
|
"StackWalker.cpp LeakFinder.h" PROPERTIES COMPILE_FLAGS "/Yc\"Globals.h\""
|
||||||
)
|
)
|
||||||
|
|
||||||
foreach(header ${HEADERS})
|
|
||||||
set(FLAGS "/Yu ${header} /Yc ${header}")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS}")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS}")
|
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAGS}")
|
|
||||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FLAGS}")
|
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${FLAGS}")
|
|
||||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${FLAGS}")
|
|
||||||
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} ${FLAGS}")
|
|
||||||
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} ${FLAGS}")
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(REMOVE_ITEM SOURCE "${PROJECT_SOURCE_DIR}/StackWalker.cpp" "${PROJECT_SOURCE_DIR}/LeakFinder.cpp")
|
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
set(EXECUTABLE ../MCServer/MCServer)
|
set(EXECUTABLE ../MCServer/MCServer)
|
||||||
@ -73,11 +68,25 @@ else()
|
|||||||
set(EXECUTABLE MCServer)
|
set(EXECUTABLE MCServer)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
add_executable(${EXECUTABLE} ${SOURCE})
|
add_executable(${EXECUTABLE} ${SOURCE})
|
||||||
|
|
||||||
|
|
||||||
|
# Precompiled headers (2nd part)
|
||||||
|
if (WIN32)
|
||||||
|
SET_TARGET_PROPERTIES(
|
||||||
|
${EXECUTABLE} PROPERTIES COMPILE_FLAGS "/Yu\"Globals.h\""
|
||||||
|
OBJECT_DEPENDS "$(IntDir)/$(TargetName.pch)"
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
if (NOT WIN32)
|
if (NOT WIN32)
|
||||||
target_link_libraries(${EXECUTABLE} OSSupport HTTPServer Bindings Items Blocks)
|
target_link_libraries(${EXECUTABLE} OSSupport HTTPServer Bindings Items Blocks)
|
||||||
target_link_libraries(${EXECUTABLE} Protocol Generating WorldStorage)
|
target_link_libraries(${EXECUTABLE} Protocol Generating WorldStorage)
|
||||||
target_link_libraries(${EXECUTABLE} Mobs Entities Simulator UI BlockEntities)
|
target_link_libraries(${EXECUTABLE} Mobs Entities Simulator UI BlockEntities)
|
||||||
endif ()
|
endif ()
|
||||||
target_link_libraries(${EXECUTABLE} md5 luaexpat iniFile jsoncpp cryptopp zlib lua)
|
if (WIN32)
|
||||||
|
target_link_libraries(${EXECUTABLE} expat tolualib ws2_32.lib Psapi.lib)
|
||||||
|
endif()
|
||||||
|
target_link_libraries(${EXECUTABLE} md5 luaexpat iniFile jsoncpp cryptopp zlib lua sqlite)
|
||||||
|
@ -95,15 +95,11 @@
|
|||||||
*
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
#include <windows.h>
|
#include "Globals.h"
|
||||||
#include <objidl.h> // Needed if compiled with "WIN32_LEAN_AND_MEAN"
|
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
|
#include <objidl.h> // Needed if compiled with "WIN32_LEAN_AND_MEAN"
|
||||||
#include <crtdbg.h>
|
#include <crtdbg.h>
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
|
|
||||||
#include "LeakFinder.h"
|
#include "LeakFinder.h"
|
||||||
|
|
||||||
@ -463,11 +459,11 @@ public:
|
|||||||
pHashEntry->nDataSize = nDataSize;
|
pHashEntry->nDataSize = nDataSize;
|
||||||
pHashEntry->Next = NULL;
|
pHashEntry->Next = NULL;
|
||||||
#ifdef _M_IX86
|
#ifdef _M_IX86
|
||||||
pHashEntry->pCallstackOffset = (LPVOID) min(context.Ebp, context.Esp);
|
pHashEntry->pCallstackOffset = (LPVOID) std::min(context.Ebp, context.Esp);
|
||||||
#elif _M_X64
|
#elif _M_X64
|
||||||
pHashEntry->pCallstackOffset = (LPVOID) min(context.Rdi, context.Rsp);
|
pHashEntry->pCallstackOffset = (LPVOID) std::min(context.Rdi, context.Rsp);
|
||||||
#elif _M_IA64
|
#elif _M_IA64
|
||||||
pHashEntry->pCallstackOffset = (LPVOID) min(context.IntSp, context.RsBSP);
|
pHashEntry->pCallstackOffset = (LPVOID) std::min(context.IntSp, context.RsBSP);
|
||||||
#else
|
#else
|
||||||
#error "Platform not supported!"
|
#error "Platform not supported!"
|
||||||
#endif
|
#endif
|
||||||
@ -490,7 +486,7 @@ public:
|
|||||||
if (pHashEntry->nMaxStackSize > 0)
|
if (pHashEntry->nMaxStackSize > 0)
|
||||||
{
|
{
|
||||||
SIZE_T len = ((SIZE_T) pHashEntry->pStackBaseAddr + pHashEntry->nMaxStackSize) - (SIZE_T)pHashEntry->pCallstackOffset;
|
SIZE_T len = ((SIZE_T) pHashEntry->pStackBaseAddr + pHashEntry->nMaxStackSize) - (SIZE_T)pHashEntry->pCallstackOffset;
|
||||||
bytesToRead = min(len, MAX_CALLSTACK_LEN_BUF);
|
bytesToRead = std::min(len, (SIZE_T)MAX_CALLSTACK_LEN_BUF);
|
||||||
}
|
}
|
||||||
// Now read the callstack:
|
// Now read the callstack:
|
||||||
if (ReadProcessMemory(GetCurrentProcess(), (LPCVOID) pHashEntry->pCallstackOffset, &(pHashEntry->pcCallstackAddr), bytesToRead, &(pHashEntry->nCallstackLen)) == 0)
|
if (ReadProcessMemory(GetCurrentProcess(), (LPCVOID) pHashEntry->pCallstackOffset, &(pHashEntry->pcCallstackAddr), bytesToRead, &(pHashEntry->nCallstackLen)) == 0)
|
||||||
|
@ -73,10 +73,10 @@
|
|||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
#include <windows.h>
|
|
||||||
|
#include "Globals.h"
|
||||||
|
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#pragma comment(lib, "version.lib") // for "VerQueryValue"
|
#pragma comment(lib, "version.lib") // for "VerQueryValue"
|
||||||
#pragma warning(disable:4826)
|
#pragma warning(disable:4826)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user