[Cleanup] Part 1

This is the first of several cleanup commits, specifically directed towards the dependencies.

This commits removes the old, deprecate precompiled openssl and mysql libraries, as well as started restructuring of shared and deps folder.

This has not been tested on Linux yet, and the pre-built SLN files have not yet been updated.
This commit is contained in:
Foereaper 2015-03-21 02:41:57 +01:00
parent c710687b8b
commit ee1b174a27
23 changed files with 361 additions and 278 deletions

View File

@ -201,31 +201,20 @@ else()
include(cmake/ImportACE.cmake)
endif()
# Win32 delivered packages
if(WIN32)
set(MYSQL_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/dep/include/mysql")
set(MYSQL_LIBRARY "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libmySQL.lib")
set(MYSQL_DEBUG_LIBRARY "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libmySQL.lib")
set(OPENSSL_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/dep/include/openssl")
set(OPENSSL_LIBRARIES "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libeay32.lib")
set(OPENSSL_DEBUG_LIBRARIES "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libeay32.lib")
# zlib is build
# Required packages to build
find_package(OpenSSL REQUIRED)
if(POSTGRESQL)
find_package(PostgreSQL REQUIRED)
if(POSTGRESQL_FOUND)
include_directories(${POSTGRESQL_INCLUDE_DIRS})
endif(POSTGRESQL_FOUND)
else()
find_package(MySQL REQUIRED)
endif()
# *nix-specific packages
if(UNIX)
if(POSTGRESQL)
find_package(PostgreSQL REQUIRED)
if(POSTGRESQL_FOUND)
include_directories(${POSTGRESQL_INCLUDE_DIRS})
endif(POSTGRESQL_FOUND)
else()
find_package(MySQL REQUIRED)
endif()
find_package(OpenSSL REQUIRED)
find_package(ZLIB REQUIRED)
endif()

View File

@ -72,51 +72,95 @@ find_path(MYSQL_INCLUDE_DIR
/usr/local/include
/usr/local/include/mysql
/usr/local/mysql/include
"C:/Program Files/MySQL/include"
"C:/Program Files/MySQL/MySQL Server 5.0/include"
"C:/Program Files/MySQL/MySQL Server 5.6/include"
"C:/Program Files/MySQL/MySQL Server 5.5/include"
"C:/Program Files/MySQL/MySQL Server 5.1/include"
"C:/Program Files/MySQL/MySQL Server 5.0/include"
"C:/Program Files/MySQL/include"
"C:/Program Files (x86)/MySQL/MySQL Server 5.6/include"
"C:/Program Files (x86)/MySQL/MySQL Server 5.5/include"
"C:/Program Files (x86)/MySQL/MySQL Server 5.1/include"
"C:/Program Files (x86)/MySQL/MySQL Server 5.0/include"
"C:/Program Files (x86)/MySQL/include"
"C:/MySQL/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.5;Location]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.6;Location]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.5;Location]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/include"
"$ENV{ProgramFiles}/MySQL/*/include"
"$ENV{SystemDrive}/MySQL/*/include"
"c:/msys/local/include"
"$ENV{MYSQL_ROOT}/include"
DOC
"Specify the directory containing mysql.h."
)
if( UNIX )
foreach(LIB ${MYSQL_ADD_LIBRARIES})
find_library( MYSQL_LIBRARY
NAMES
mysql libmysql ${LIB}
PATHS
${MYSQL_ADD_LIBRARIES_PATH}
/usr/lib
/usr/lib/mysql
/usr/local/lib
/usr/local/lib/mysql
/usr/local/mysql/lib
DOC "Specify the location of the mysql library here."
)
endforeach(LIB ${MYSQL_ADD_LIBRARY})
foreach(LIB ${MYSQL_ADD_LIBRARIES})
find_library( MYSQL_LIBRARY
NAMES
mysql libmysql ${LIB}
PATHS
${MYSQL_ADD_LIBRARIES_PATH}
/usr/lib
/usr/lib/mysql
/usr/local/lib
/usr/local/lib/mysql
/usr/local/mysql/lib
DOC "Specify the location of the mysql library here."
)
endforeach(LIB ${MYSQL_ADD_LIBRARY})
endif( UNIX )
if( WIN32 )
find_library( MYSQL_LIBRARY
NAMES
mysql libmysql ${LIB}
libmysql
PATHS
${MYSQL_ADD_LIBRARIES_PATH}
"C:/Program Files/MySQL/lib"
"C:/Program Files/MySQL/MySQL Server 5.0/lib/opt"
"C:/Program Files/MySQL/MySQL Server 5.6/lib"
"C:/Program Files/MySQL/MySQL Server 5.6/lib/opt"
"C:/Program Files/MySQL/MySQL Server 5.5/lib"
"C:/Program Files/MySQL/MySQL Server 5.5/lib/opt"
"C:/Program Files/MySQL/MySQL Server 5.1/lib"
"C:/Program Files/MySQL/MySQL Server 5.1/lib/opt"
"C:/Program Files/MySQL/MySQL Server 5.0/lib"
"C:/Program Files/MySQL/MySQL Server 5.0/lib/opt"
"C:/Program Files/MySQL/lib"
"C:/Program Files (x86)/MySQL/MySQL Server 5.6/lib"
"C:/Program Files (x86)/MySQL/MySQL Server 5.6/lib/opt"
"C:/Program Files (x86)/MySQL/MySQL Server 5.5/lib"
"C:/Program Files (x86)/MySQL/MySQL Server 5.5/lib/opt"
"C:/Program Files (x86)/MySQL/MySQL Server 5.1/lib"
"C:/Program Files (x86)/MySQL/MySQL Server 5.1/lib/opt"
"C:/Program Files (x86)/MySQL/MySQL Server 5.0/lib"
"C:/Program Files (x86)/MySQL/MySQL Server 5.0/lib/opt"
"C:/Program Files (x86)/MySQL/lib"
"C:/MySQL/lib/debug"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.5;Location]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.5;Location]/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.6;Location]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.6;Location]/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.5;Location]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.5;Location]/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt"
"$ENV{ProgramFiles}/MySQL/*/lib/opt"
"$ENV{SystemDrive}/MySQL/*/lib/opt"
"c:/msys/local/include"
"$ENV{MYSQL_ROOT}/lib"
DOC "Specify the location of the mysql library here."
)
endif( WIN32 )
@ -144,9 +188,9 @@ if( MYSQL_LIBRARY )
message(STATUS "Found MySQL library: ${MYSQL_LIBRARY}")
message(STATUS "Found MySQL headers: ${MYSQL_INCLUDE_DIR}")
else( MYSQL_INCLUDE_DIR )
message(FATAL_ERROR "Could not find MySQL headers! Please install the development-libraries and headers.")
message(FATAL_ERROR "Could not find MySQL headers! Please install the development libraries and headers")
endif( MYSQL_INCLUDE_DIR )
mark_as_advanced( MYSQL_FOUND MYSQL_LIBRARY MYSQL_EXTRA_LIBRARIES MYSQL_INCLUDE_DIR )
else( MYSQL_LIBRARY )
message(FATAL_ERROR "Could not find the MySQL libraries! Please install the development-libraries and headers.")
endif( MYSQL_LIBRARY )
message(FATAL_ERROR "Could not find the MySQL libraries! Please install the development libraries and headers")
endif( MYSQL_LIBRARY )

View File

@ -1,107 +1,221 @@
# - Try to find the OpenSSL encryption library
# Once done this will define
#
# Find the OpenSSL client includes and library
# OPENSSL_ROOT_DIR - Set this variable to the root installation of OpenSSL
#
# Read-Only variables:
# OPENSSL_FOUND - system has the OpenSSL library
# OPENSSL_INCLUDE_DIR - the OpenSSL include directory
# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL
# This module defines
# OPENSSL_INCLUDE_DIR, where to find openssl.h
# OPENSSL_LIBRARIES, the libraries to link against to connect to MySQL
# OPENSSL_FOUND, if false, you cannot build anything that requires MySQL.
#=============================================================================
# Copyright 2006-2009 Kitware, Inc.
# Copyright 2006 Alexander Neundorf <neundorf@kde.org>
# Copyright 2009-2010 Mathieu Malaterre <mathieu.malaterre@gmail.com>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distributed this file outside of CMake, substitute the full
# License text for the above reference.)
# also defined, but not for general use are
# OPENSSL_LIBRARY, where to find the MySQL library.
# http://www.slproweb.com/products/Win32OpenSSL.html
if( OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES )
# in cache already
set(OPENSSL_FOUND 1)
else( OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES )
set(OPENSSL_FOUND 0)
SET(_OPENSSL_ROOT_HINTS
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
)
if(WIN32)
if(PLATFORM MATCHES X64)
set(TMP_OPENSSL_INCLUDE_DIR
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;InstallLocation]/include/openssl"
)
set(TMP_OPENSSL_LIBRARIES
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;InstallLocation]/lib"
IF(PLATFORM EQUAL 64)
SET(_OPENSSL_ROOT_PATHS
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;InstallLocation]"
"C:/OpenSSL-Win64/"
"C:/OpenSSL/"
)
ELSE()
SET(_OPENSSL_ROOT_PATHS
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]"
"C:/OpenSSL/"
)
ENDIF()
FIND_PATH(OPENSSL_ROOT_DIR
NAMES
include/openssl/ssl.h
HINTS
${_OPENSSL_ROOT_HINTS}
PATHS
${_OPENSSL_ROOT_PATHS}
)
MARK_AS_ADVANCED(OPENSSL_ROOT_DIR)
# Re-use the previous path:
FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h
${OPENSSL_ROOT_DIR}/include
)
IF(WIN32 AND NOT CYGWIN)
# MINGW should go here too
IF(MSVC)
# /MD and /MDd are the standard values - if someone wants to use
# others, the libnames have to change here too
# use also ssl and ssleay32 in debug as fallback for openssl < 0.9.8b
# TODO: handle /MT and static lib
# In Visual C++ naming convention each of these four kinds of Windows libraries has it's standard suffix:
# * MD for dynamic-release
# * MDd for dynamic-debug
# * MT for static-release
# * MTd for static-debug
# Implementation details:
# We are using the libraries located in the VC subdir instead of the parent directory eventhough :
# libeay32MD.lib is identical to ../libeay32.lib, and
# ssleay32MD.lib is identical to ../ssleay32.lib
FIND_LIBRARY(LIB_EAY_DEBUG
NAMES
libeay32MDd libeay32
PATHS
${OPENSSL_ROOT_DIR}/lib/VC
)
FIND_LIBRARY(LIB_EAY_RELEASE
NAMES
libeay32MD libeay32
PATHS
${OPENSSL_ROOT_DIR}/lib/VC
)
FIND_LIBRARY(SSL_EAY_DEBUG
NAMES
ssleay32MDd ssleay32 ssl
PATHS
${OPENSSL_ROOT_DIR}/lib/VC
)
FIND_LIBRARY(SSL_EAY_RELEASE
NAMES
ssleay32MD ssleay32 ssl
PATHS
${OPENSSL_ROOT_DIR}/lib/VC
)
if( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
set( OPENSSL_LIBRARIES
optimized ${SSL_EAY_RELEASE} ${LIB_EAY_RELEASE}
debug ${SSL_EAY_DEBUG} ${LIB_EAY_DEBUG}
)
else()
set(TMP_OPENSSL_INCLUDE_DIR
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]/include/openssl"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]/include/openssl"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]/include/openssl"
)
set(TMP_OPENSSL_LIBRARIES
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]/lib"
set( OPENSSL_LIBRARIES
${SSL_EAY_RELEASE}
${LIB_EAY_RELEASE}
)
endif()
endif()
find_path(OPENSSL_INCLUDE_DIR
NAMES
ssl.h
PATHS
/usr/include
/usr/include/openssl
/usr/local/include
/usr/local/include/openssl
/usr/local/openssl/include
${TMP_OPENSSL_INCLUDE_DIR}
DOC
"Specify the directory containing openssl.h."
)
MARK_AS_ADVANCED(SSL_EAY_DEBUG SSL_EAY_RELEASE LIB_EAY_DEBUG LIB_EAY_RELEASE)
ELSEIF(MINGW)
find_library(OPENSSL_LIBRARIES
NAMES
ssleay32
ssl
PATHS
/usr/lib
/usr/lib/ssl
/usr/local/lib
/usr/local/lib/ssl
/usr/local/ssl/lib
${TMP_OPENSSL_LIBRARIES}
DOC "Specify the OpenSSL library here."
)
if( WIN32 )
find_library(OPENSSL_EXTRA_LIBRARIES
NAMES
libeay32
PATHS
${TMP_OPENSSL_LIBRARIES}
DOC
"if more libraries are necessary to link in a OpenSSL client, specify them here."
)
endif( WIN32 )
if( UNIX )
find_library(OPENSSL_EXTRA_LIBRARIES
# same player, for MingW
FIND_LIBRARY(LIB_EAY
NAMES
crypto
libeay32
PATHS
/usr/lib
/usr/lib/ssl
/usr/local/lib
/usr/local/lib/ssl
/usr/local/ssl/lib
${TMP_OPENSSL_LIBRARIES}
DOC "if more libraries are necessary to link in a OpenSSL client, specify them here."
${OPENSSL_ROOT_DIR}/lib/MinGW
)
endif()
if( OPENSSL_LIBRARIES )
if( OPENSSL_INCLUDE_DIR )
set( OPENSSL_FOUND 1 )
message(STATUS "Found OpenSSL library: ${OPENSSL_LIBRARIES}")
message(STATUS "Found OpenSSL headers: ${OPENSSL_INCLUDE_DIR}")
else ( OPENSSL_INCLUDE_DIR )
message(FATAL_ERROR "Could not find OpenSSL headers! Please install the development-headers")
endif( OPENSSL_INCLUDE_DIR )
else( OPENSSL_LIBRARIES )
message(FATAL_ERROR "Could not find OpenSSL libraries! Please install the library before continuing")
endif( OPENSSL_LIBRARIES )
mark_as_advanced( OPENSSL_FOUND OPENSSL_LIBRARIES OPENSSL_EXTRA_LIBRARIES OPENSSL_INCLUDE_DIR )
endif( OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES )
FIND_LIBRARY(SSL_EAY NAMES
NAMES
ssleay32
PATHS
${OPENSSL_ROOT_DIR}/lib/MinGW
)
MARK_AS_ADVANCED(SSL_EAY LIB_EAY)
set( OPENSSL_LIBRARIES
${SSL_EAY}
${LIB_EAY}
)
ELSE(MSVC)
# Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues:
FIND_LIBRARY(LIB_EAY
NAMES
libeay32
PATHS
${OPENSSL_ROOT_DIR}/lib
${OPENSSL_ROOT_DIR}/lib/VC
)
FIND_LIBRARY(SSL_EAY
NAMES
ssleay32
PATHS
${OPENSSL_ROOT_DIR}/lib
${OPENSSL_ROOT_DIR}/lib/VC
)
MARK_AS_ADVANCED(SSL_EAY LIB_EAY)
SET( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} )
ENDIF(MSVC)
ELSE(WIN32 AND NOT CYGWIN)
FIND_LIBRARY(OPENSSL_SSL_LIBRARIES NAMES ssl ssleay32 ssleay32MD)
FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARIES NAMES crypto)
MARK_AS_ADVANCED(OPENSSL_CRYPTO_LIBRARIES OPENSSL_SSL_LIBRARIES)
SET(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES})
ENDIF(WIN32 AND NOT CYGWIN)
if (NOT OPENSSL_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OpenSSL DEFAULT_MSG
OPENSSL_LIBRARIES
OPENSSL_INCLUDE_DIR
)
endif()
if (OPENSSL_INCLUDE_DIR)
message( STATUS "Found OpenSSL library: ${OPENSSL_LIBRARIES}")
message( STATUS "Found OpenSSL headers: ${OPENSSL_INCLUDE_DIR}")
if (_OPENSSL_VERSION)
set(OPENSSL_VERSION "${_OPENSSL_VERSION}")
else (_OPENSSL_VERSION)
file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str
REGEX "^# *define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9][0-9][0-9][0-9][0-9][0-9].*")
# The version number is encoded as 0xMNNFFPPS: major minor fix patch status
# The status gives if this is a developer or prerelease and is ignored here.
# Major, minor, and fix directly translate into the version numbers shown in
# the string. The patch field translates to the single character suffix that
# indicates the bug fix state, which 00 -> nothing, 01 -> a, 02 -> b and so
# on.
string(REGEX REPLACE "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]).*$"
"\\1;\\2;\\3;\\4;\\5" OPENSSL_VERSION_LIST "${openssl_version_str}")
list(GET OPENSSL_VERSION_LIST 0 OPENSSL_VERSION_MAJOR)
list(GET OPENSSL_VERSION_LIST 1 OPENSSL_VERSION_MINOR)
list(GET OPENSSL_VERSION_LIST 2 OPENSSL_VERSION_FIX)
list(GET OPENSSL_VERSION_LIST 3 OPENSSL_VERSION_PATCH)
string(REGEX REPLACE "^0(.)" "\\1" OPENSSL_VERSION_MINOR "${OPENSSL_VERSION_MINOR}")
string(REGEX REPLACE "^0(.)" "\\1" OPENSSL_VERSION_FIX "${OPENSSL_VERSION_FIX}")
if (NOT OPENSSL_VERSION_PATCH STREQUAL "00")
# 96 is the ASCII code of 'a' minus 1
math(EXPR OPENSSL_VERSION_PATCH_ASCII "${OPENSSL_VERSION_PATCH} + 96")
# Once anyone knows how OpenSSL would call the patch versions beyond 'z'
# this should be updated to handle that, too. This has not happened yet
# so it is simply ignored here for now.
string(ASCII "${OPENSSL_VERSION_PATCH_ASCII}" OPENSSL_VERSION_PATCH_STRING)
endif (NOT OPENSSL_VERSION_PATCH STREQUAL "00")
set(OPENSSL_VERSION "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH_STRING}")
endif (_OPENSSL_VERSION)
endif (OPENSSL_INCLUDE_DIR)
MARK_AS_ADVANCED(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES)

2
dep

@ -1 +1 @@
Subproject commit e5d23bfee52c08188a59598cafb93ba06199ec87
Subproject commit d5a6e40bebcfe931c04ba0d52ecbcc078598fc19

View File

@ -31,7 +31,8 @@ include_directories(
"${CMAKE_CURRENT_SOURCE_DIR}/Tools"
"${CMAKE_CURRENT_SOURCE_DIR}/vmap"
"${CMAKE_CURRENT_SOURCE_DIR}/WorldHandlers"
"${CMAKE_SOURCE_DIR}/dep/include/g3dlite"
"${CMAKE_SOURCE_DIR}/dep/g3dlite"
"${CMAKE_SOURCE_DIR}/dep/zlib"
"${CMAKE_SOURCE_DIR}/dep/recastnavigation/Detour/Include"
"${CMAKE_SOURCE_DIR}/dep/recastnavigation/Detour"
"${CMAKE_SOURCE_DIR}/dep/recastnavigation/"
@ -41,6 +42,7 @@ include_directories(
"${CMAKE_BINARY_DIR}"
"${CMAKE_BINARY_DIR}/src/shared"
"${MYSQL_INCLUDE_DIR}"
"${OPENSSL_INCLUDE_DIR}"
"${ACE_INCLUDE_DIR}"
)

View File

@ -22,7 +22,7 @@
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#include "zlib/zlib.h"
#include <zlib.h>
#include "AddonHandler.h"
#include "Database/DatabaseEnv.h"
#include "Opcodes.h"

View File

@ -22,7 +22,7 @@
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#include <zlib/zlib.h>
#include <zlib.h>
#include "Common.h"
#include "Language.h"
#include "Database/DatabaseEnv.h"

View File

@ -22,7 +22,7 @@
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#include <zlib/zlib.h>
#include <zlib.h>
#include "Common.h"
#include "UpdateData.h"
#include "ByteBuffer.h"

View File

@ -38,7 +38,7 @@ mangos_source_group(${vmap_LIB_SRCS})
include_directories(
${ACE_INCLUDE_DIRS}
${MYSQL_INCLUDE_DIR}
${CMAKE_SOURCE_DIR}/dep/include/g3dlite/
${CMAKE_SOURCE_DIR}/dep/g3dlite/
${CMAKE_SOURCE_DIR}/src/framework/
${CMAKE_SOURCE_DIR}/src/shared/
${CMAKE_SOURCE_DIR}/src/game/

View File

@ -97,6 +97,8 @@ target_link_libraries(${EXECUTABLE_NAME}
shared
framework
g3dlite
${MYSQL_LIBRARY}
${OPENSSL_LIBRARIES}
)
add_dependencies(${EXECUTABLE_NAME} game)
@ -110,20 +112,11 @@ endif()
if(WIN32)
target_link_libraries(${EXECUTABLE_NAME}
zlib
optimized ${MYSQL_LIBRARY}
optimized ${OPENSSL_LIBRARIES}
debug ${MYSQL_DEBUG_LIBRARY}
debug ${OPENSSL_DEBUG_LIBRARIES}
)
if(PLATFORM MATCHES X86)
target_link_libraries(${EXECUTABLE_NAME})
endif()
endif()
if(UNIX)
target_link_libraries(${EXECUTABLE_NAME}
${MYSQL_LIBRARY}
${OPENSSL_LIBRARIES}
${OPENSSL_EXTRA_LIBRARIES}
${ZLIB_LIBRARIES}
)
@ -163,16 +156,16 @@ if(WIN32)
if(MSVC)
add_custom_command(TARGET ${EXECUTABLE_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libeay32.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/ssleay32.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libmySQL.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/"
#COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libeay32.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/"
#COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/ssleay32.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/"
COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_INCLUDE_DIR}/../lib/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/"
)
elseif(XCODE)
add_custom_command(TARGET ${EXECUTABLE_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libeay32.dll" "${CMAKE_BINARY_DIR}/bin/"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/ssleay32.dll" "${CMAKE_BINARY_DIR}/bin/"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libmySQL.dll" "${CMAKE_BINARY_DIR}/bin/"
#COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/libeay32.dll" "${CMAKE_BINARY_DIR}/bin/"
#COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dep/lib/${DEP_ARCH}/ssleay32.dll" "${CMAKE_BINARY_DIR}/bin/"
COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_INCLUDE_DIR}/../lib/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/"
)
endif()
endif()

@ -1 +1 @@
Subproject commit 15df5d42ae03cabe9cebfbd7534df8af4f739ecb
Subproject commit de0584c97ca9f0091491f05c67f487a5b520cabb

View File

@ -23,19 +23,18 @@
*/
#include "AuthCrypt.h"
#include "Hmac.h"
#include "HMACSHA1.h"
#include "Log.h"
#include "BigNumber.h"
const static size_t CRYPTED_SEND_LEN = 4;
const static size_t CRYPTED_RECV_LEN = 6;
AuthCrypt::AuthCrypt()
{
_initialized = false;
}
void AuthCrypt::Init()
{
_send_i = _send_j = _recv_i = _recv_j = 0;
_initialized = true;
}
void AuthCrypt::DecryptRecv(uint8* data, size_t len)
{
if (!_initialized)
@ -72,21 +71,18 @@ void AuthCrypt::EncryptSend(uint8* data, size_t len)
}
}
void AuthCrypt::Init()
{
_send_i = _send_j = _recv_i = _recv_j = 0;
_initialized = true;
}
void AuthCrypt::SetKey(uint8* key, size_t len)
{
_key.resize(len);
std::copy(key, key + len, _key.begin());
}
AuthCrypt::~AuthCrypt()
{
}
void AuthCrypt::GenerateKey(uint8* key, BigNumber* bn)
{
HmacHash hash;
hash.UpdateBigNumber(bn);
hash.Finalize();
memcpy(key, hash.GetDigest(), SHA_DIGEST_LENGTH);
}
}

View File

@ -48,21 +48,18 @@ class AuthCrypt
*/
~AuthCrypt();
const static size_t CRYPTED_SEND_LEN = 4; /**< TODO */
const static size_t CRYPTED_RECV_LEN = 6; /**< TODO */
/**
* @brief
*
*/
* @brief
*
*/
void Init();
/**
* @brief
*
* @param key
* @param len
*/
* @brief
*
* @param key
* @param len
*/
void SetKey(uint8* key, size_t len);
/**
@ -87,14 +84,6 @@ class AuthCrypt
*/
bool IsInitialized() { return _initialized; }
/**
* @brief
*
* @param
* @param
*/
static void GenerateKey(uint8*, BigNumber*);
private:
std::vector<uint8> _key; /**< TODO */
uint8 _send_i, _send_j, _recv_i, _recv_j; /**< TODO */

View File

@ -22,39 +22,40 @@
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#include "Auth/Hmac.h"
#include "Auth/HMACSHA1.h"
#include "BigNumber.h"
HmacHash::HmacHash()
HMACSHA1::HMACSHA1()
{
uint8 temp[SEED_KEY_SIZE] = { 0x38, 0xA7, 0x83, 0x15, 0xF8, 0x92, 0x25, 0x30, 0x71, 0x98, 0x67, 0xB1, 0x8C, 0x4, 0xE2, 0xAA };
memcpy(&m_key, &temp, SEED_KEY_SIZE);
HMAC_CTX_init(&m_ctx);
HMAC_Init_ex(&m_ctx, &m_key, SEED_KEY_SIZE, EVP_sha1(), NULL);
}
HmacHash::~HmacHash()
HMACSHA1::~HMACSHA1()
{
memset(&m_key, 0x00, SEED_KEY_SIZE);
HMAC_CTX_cleanup(&m_ctx);
}
void HmacHash::UpdateBigNumber(BigNumber* bn)
void HMACSHA1::UpdateBigNumber(BigNumber* bn)
{
UpdateData(bn->AsByteArray(), bn->GetNumBytes());
}
void HmacHash::UpdateData(const uint8* data, int length)
void HMACSHA1::UpdateData(const uint8* data, int length)
{
HMAC_Update(&m_ctx, data, length);
}
void HmacHash::Initialize()
void HMACSHA1::Initialize()
{
HMAC_Init_ex(&m_ctx, &m_key, SEED_KEY_SIZE, EVP_sha1(), NULL);
}
void HmacHash::Finalize()
void HMACSHA1::Finalize()
{
uint32 length = 0;
HMAC_Final(&m_ctx, m_digest, &length);

View File

@ -22,8 +22,8 @@
* and lore are copyrighted by Blizzard Entertainment, Inc.
*/
#ifndef MANGOS_H_AUTH_HMAC
#define MANGOS_H_AUTH_HMAC
#ifndef _AUTH_HMACSHA1_H
#define _AUTH_HMACSHA1_H
#include "Common.h"
#include <openssl/hmac.h>
@ -37,19 +37,19 @@ class BigNumber;
* @brief
*
*/
class HmacHash
class HMACSHA1
{
public:
/**
* @brief
*
*/
HmacHash();
HMACSHA1();
/**
* @brief
*
*/
~HmacHash();
~HMACSHA1();
/**
* @brief
*
@ -78,13 +78,13 @@ class HmacHash
*
* @return uint8
*/
uint8* GetDigest() { return m_digest; }
uint8* GetDigest() { return (uint8*)m_digest; }
/**
* @brief
*
* @return int
*/
int GetLength() { return SHA_DIGEST_LENGTH; }
int GetLength() { return SHA_DIGEST_LENGTH; };
private:
HMAC_CTX m_ctx; /**< TODO */
uint8 m_key[SEED_KEY_SIZE]; /**< TODO */

View File

@ -23,67 +23,21 @@
set(LIBRARY_NAME shared)
set(SRC_GRP_AUTH
Auth/AuthCrypt.cpp
Auth/AuthCrypt.h
Auth/BigNumber.cpp
Auth/BigNumber.h
Auth/Hmac.cpp
Auth/Hmac.h
Auth/md5.h
Auth/Sha1.cpp
Auth/Sha1.h
)
file(GLOB_RECURSE SRC_GRP_AUTH Auth/*.cpp Auth/*.h)
set(SRC_GRP_CONFIG
Config/Config.cpp
Config/Config.h
)
file(GLOB_RECURSE SRC_GRP_CONFIG Config/*.cpp Config/*.h)
set(SRC_GRP_DATABASE
Database/Database.cpp
Database/Database.h
Database/DatabaseEnv.h
Database/DatabaseImpl.h
Database/DatabaseMysql.cpp
Database/DatabaseMysql.h
Database/DatabasePostgre.cpp
Database/DatabasePostgre.h
Database/Field.cpp
Database/Field.h
Database/PGSQLDelayThread.h
Database/QueryResult.h
Database/QueryResultMysql.cpp
Database/QueryResultMysql.h
Database/QueryResultPostgre.cpp
Database/QueryResultPostgre.h
Database/SqlDelayThread.cpp
Database/SqlDelayThread.h
Database/SqlOperations.cpp
Database/SqlOperations.h
Database/SqlPreparedStatement.cpp
Database/SqlPreparedStatement.h
Database/SQLStorage.cpp
Database/SQLStorage.h
Database/SQLStorageImpl.h
)
set(SRC_GRP_DATABASE_DBC
Database/DBCFileLoader.cpp
Database/DBCFileLoader.h
Database/DBCStore.h
)
file(GLOB_RECURSE SRC_GRP_DATABASE Database/*.cpp Database/*.h)
set(SRC_GRP_LOG
Log.cpp
Log.h
Log.cpp
)
set(SRC_GRP_UTIL
ByteBuffer.cpp
ByteBuffer.h
Errors.h
# dep/include/mersennetwister/MersenneTwister.h is part of this group in the VC 2012 file but it is not part of src/shared, so it is omitted here
ProgressBar.cpp
ProgressBar.h
Timer.h
@ -97,7 +51,6 @@ set(LIBRARY_SRCS
${SRC_GRP_AUTH}
${SRC_GRP_CONFIG}
${SRC_GRP_DATABASE}
${SRC_GRP_DATABASE_DBC}
${SRC_GRP_LOG}
${SRC_GRP_UTIL}
Common.cpp
@ -127,7 +80,9 @@ source_group("Database"
source_group("Database\\DataStores"
FILES
${SRC_GRP_DATABASE_DBC}
Database/DBCFileLoader.cpp
Database/DBCFileLoader.h
Database/DBCStore.h
)
source_group("Log"
@ -159,10 +114,11 @@ endif()
include_directories(
"${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_SOURCE_DIR}/dep/include"
"${CMAKE_SOURCE_DIR}/dep"
"${CMAKE_SOURCE_DIR}/src/framework"
"${CMAKE_BINARY_DIR}"
"${ACE_INCLUDE_DIR}"
"${OPENSSL_INCLUDE_DIR}"
)
if(POSTGRESQL)
@ -177,8 +133,12 @@ add_library(${LIBRARY_NAME} STATIC
${LIBRARY_SRCS}
)
#target_link_libraries(${LIBRARY_NAME} ${OPENSSL_LIBRARIES})
if(POSTGRESQL)
target_link_libraries(${LIBRARY_NAME} ${PostgreSQL_LIBRARIES})
else()
target_link_libraries(${LIBRARY_NAME} ${MYSQL_LIBRARY})
endif()
if(NOT ACE_USE_EXTERNAL)

View File

@ -32,12 +32,10 @@
#include "Policies/Singleton.h"
#include <ace/Thread_Mutex.h>
#include <ace/Guard_T.h>
#include <mysql.h>
#ifdef WIN32
#include <winsock2.h>
#include <mysql/mysql.h>
#else
#include <mysql.h>
#endif
/**

View File

@ -26,11 +26,7 @@
#define FIELD_H
#include "Common.h"
#ifdef WIN32
#include <mysql/mysql.h>
#else
#include <mysql.h>
#endif
/**
* @brief

View File

@ -31,11 +31,10 @@
#ifdef WIN32
#include <winsock2.h>
#include <mysql/mysql.h>
#else
#include <mysql.h>
#endif
#include <mysql.h>
/**
* @brief
*

View File

@ -26,7 +26,7 @@
#include "Timer.h"
#include "utf8cpp/utf8.h"
#include "mersennetwister/MersenneTwister.h"
#include <mersennetwister/MersenneTwister.h>
#include <ace/TSS_T.h>
#include <ace/INET_Addr.h>

View File

@ -20,7 +20,7 @@
include_directories(
"${CMAKE_SOURCE_DIR}/src/shared"
"${CMAKE_SOURCE_DIR}/src/game/vmap/"
"${CMAKE_SOURCE_DIR}/dep/include/g3dlite/"
"${CMAKE_SOURCE_DIR}/dep/g3dlite/"
"${CMAKE_SOURCE_DIR}/src/framework/"
"${ACE_INCLUDE_DIR}"
)

View File

@ -43,12 +43,13 @@ include_directories(
"${CMAKE_SOURCE_DIR}/src/shared"
"${CMAKE_SOURCE_DIR}/src/game"
"${CMAKE_SOURCE_DIR}/src/game/vmap"
"${CMAKE_SOURCE_DIR}/dep/include/g3dlite"
"${CMAKE_SOURCE_DIR}/dep/g3dlite"
"${CMAKE_SOURCE_DIR}/dep/g3dlite/G3D"
"${CMAKE_SOURCE_DIR}/src/framework"
"${CMAKE_SOURCE_DIR}/src/game/WorldHandlers"
"${CMAKE_SOURCE_DIR}/dep/recastnavigation/Detour/Include"
"${CMAKE_SOURCE_DIR}/dep/recastnavigation/Recast/Include"
"${CMAKE_SOURCE_DIR}/dep/src/zlib"
"${CMAKE_SOURCE_DIR}/dep/zlib"
)
set(SOURCES

View File

@ -30,7 +30,8 @@ add_definitions("-DNO_CORE_FUNCS")
include_directories(
"${CMAKE_SOURCE_DIR}/src/shared"
"${CMAKE_SOURCE_DIR}/src/game/vmap/"
"${CMAKE_SOURCE_DIR}/dep/include/g3dlite/"
"${CMAKE_SOURCE_DIR}/dep/g3dlite/"
"${CMAKE_SOURCE_DIR}/dep/g3dlite/G3D"
"${CMAKE_SOURCE_DIR}/src/framework/"
"${ACE_INCLUDE_DIR}"
)