-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6d3df30
commit 916da34
Showing
3,501 changed files
with
1,881,656 additions
and
0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> | ||
# | ||
# This file is free software; as a special exception the author gives | ||
# unlimited permission to copy and/or distribute it, with or without | ||
# modifications, as long as this notice is preserved. | ||
# | ||
# This program is distributed in the hope that it will be useful, but | ||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the | ||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
|
||
# We require CMake >= 3.9 | ||
cmake_minimum_required(VERSION 3.9) | ||
|
||
# Set projectname (must be done AFTER setting configurationtypes) | ||
project(LegionCore) | ||
|
||
# CMake policies (can not be handled elsewhere) | ||
cmake_policy(SET CMP0005 OLD) | ||
if(POLICY CMP0043) | ||
cmake_policy(SET CMP0043 OLD) # Disable 'Ignore COMPILE_DEFINITIONS_<Config> properties' | ||
endif() | ||
|
||
if(POLICY CMP0054) | ||
cmake_policy(SET CMP0054 NEW) # Only interpret if() arguments as variables or keywords when unquoted - prevents intepreting if (SOME_STRING_VARIABLE MATCHES "MSVC") as if (SOME_STRING_VARIABLE MATCHES "1") | ||
endif() | ||
|
||
# add this options before PROJECT keyword | ||
set(CMAKE_DISABLE_SOURCE_CHANGES ON) | ||
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) | ||
|
||
# Set RPATH-handing (CMake parameters) | ||
set(CMAKE_SKIP_BUILD_RPATH 0) | ||
set(CMAKE_BUILD_WITH_INSTALL_RPATH 0) | ||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") | ||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH 1) | ||
|
||
# set macro-directory | ||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/macros") | ||
|
||
# build in Release-mode by default if not explicitly set | ||
if( NOT CMAKE_BUILD_TYPE ) | ||
set(CMAKE_BUILD_TYPE "Release") | ||
endif() | ||
|
||
include(CheckCXXSourceRuns) | ||
include(CheckIncludeFiles) | ||
|
||
# set default buildoptions and print them | ||
include(cmake/options.cmake) | ||
|
||
# turn off PCH totally if enabled (hidden setting, mainly for devs) | ||
if( NOPCH ) | ||
set(USE_COREPCH 0) | ||
set(USE_SCRIPTPCH 0) | ||
endif() | ||
|
||
include(CheckPlatform) | ||
|
||
include(GroupSources) | ||
include(AutoCollect) | ||
include(Macros) | ||
|
||
find_package(PCHSupport) | ||
find_package(MySQL) | ||
|
||
if( UNIX ) | ||
find_package(Readline) | ||
find_package(ZLIB) | ||
find_package(BZip2) | ||
find_package(Backward) | ||
endif() | ||
|
||
# Find revision ID and hash of the sourcetree | ||
include(cmake/genrev.cmake) | ||
|
||
# print out the results before continuing | ||
include(cmake/showoptions.cmake) | ||
|
||
# add dependencies | ||
add_subdirectory(dep) | ||
|
||
# add core sources | ||
add_subdirectory(src) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Copyright (C) 2005-2012 Trinity <http://www.trinitycore.org/> | ||
# | ||
# This file is free software; as a special exception the author gives | ||
# unlimited permission to copy and/or distribute it, with or without | ||
# modifications, as long as this notice is preserved. | ||
# | ||
# This program is distributed in the hope that it will be useful, but | ||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the | ||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
|
||
# This file is run right before CMake starts configuring the sourcetree | ||
|
||
# Example: Force CMAKE_INSTALL_PREFIX to be preloaded with something before | ||
# doing the actual first "configure"-part - allows for hardforcing | ||
# destinations elsewhere in the CMake buildsystem (commented out on purpose) | ||
|
||
# Override CMAKE_INSTALL_PREFIX on Windows platforms | ||
#if( WIN32 ) | ||
# if( NOT CYGWIN ) | ||
# set(CMAKE_INSTALL_PREFIX | ||
# "" CACHE PATH "Default install path") | ||
# endif() | ||
#endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Set build-directive (used in core to tell which buildtype we used) | ||
add_definitions(-D_BUILD_DIRECTIVE='"${CMAKE_BUILD_TYPE}"') | ||
|
||
if(WITH_WARNINGS) | ||
set(WARNING_FLAGS "-W -Wall -Wextra -Winit-self -Wfatal-errors -Wno-mismatched-tags") | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS}") | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} -Woverloaded-virtual") | ||
message(STATUS "Clang: All warnings enabled") | ||
endif() | ||
|
||
if(WITH_COREDEBUG) | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3") | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3") | ||
message(STATUS "Clang: Debug-flags set (-g3)") | ||
endif() | ||
|
||
# -Wno-narrowing needed to suppress a warning in g3d | ||
# -Wno-deprecated-register is needed to suppress 185 gsoap warnings on Unix systems. | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-narrowing -Wno-deprecated-register") | ||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG=1") | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# Set build-directive (used in core to tell which buildtype we used) | ||
add_definitions(-D_BUILD_DIRECTIVE='"${CMAKE_BUILD_TYPE}"') | ||
|
||
add_definitions(-fno-delete-null-pointer-checks) | ||
|
||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") | ||
message(STATUS "GCC: Enabled c++11 support") | ||
|
||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99") | ||
message(STATUS "GCC: Enabled C99 support") | ||
|
||
if(PLATFORM EQUAL 32) | ||
# Required on 32-bit systems to enable SSE2 (standard on x64) | ||
add_definitions(-msse2 -mfpmath=sse) | ||
endif() | ||
add_definitions(-DHAVE_SSE2 -D__SSE2__) | ||
message(STATUS "GCC: SSE2 flags forced") | ||
|
||
if( WITH_WARNINGS ) | ||
add_definitions(-Wall -Wfatal-errors -Wextra) | ||
message(STATUS "GCC: All warnings enabled") | ||
else() | ||
add_definitions(--no-warnings) | ||
message(STATUS "GCC: All warnings disabled") | ||
endif() | ||
|
||
if( WITH_COREDEBUG ) | ||
add_definitions(-ggdb3) | ||
message(STATUS "GCC: Debug-flags set (-ggdb3)") | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Set build-directive (used in core to tell which buildtype we used) | ||
add_definitions(-D_BUILD_DIRECTIVE="'${CMAKE_BUILD_TYPE}'") | ||
|
||
if(PLATFORM EQUAL 32) | ||
add_definitions(-axSSE2) | ||
else() | ||
add_definitions(-xSSE2) | ||
endif() | ||
|
||
if( WITH_WARNINGS ) | ||
add_definitions(-w1) | ||
message(STATUS "ICC: All warnings enabled") | ||
endif() | ||
|
||
if( WITH_COREDEBUG ) | ||
add_definitions(-g) | ||
message(STATUS "ICC: Debug-flag set (-g)") | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# set up output paths for executable binaries (.exe-files, and .dll-files on DLL-capable platforms) | ||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) | ||
|
||
# Set build-directive (used in core to tell which buildtype we used) | ||
add_definitions(-D_BUILD_DIRECTIVE=\\"${CMAKE_BUILD_TYPE}\\") | ||
|
||
if(PLATFORM EQUAL 32) | ||
# Required on 32-bit systems to enable SSE2 (standard on x64) | ||
set(SSE_FLAGS "-msse2 -mfpmath=sse") | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SSE_FLAGS}") | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SSE_FLAGS}") | ||
endif() | ||
add_definitions(-DHAVE_SSE2 -D__SSE2__) | ||
message(STATUS "GCC: SFMT enabled, SSE2 flags forced") | ||
|
||
if( WITH_WARNINGS ) | ||
set(WARNING_FLAGS "-W -Wall -Wextra -Winit-self -Winvalid-pch -Wfatal-errors") | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS}") | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} -Woverloaded-virtual") | ||
message(STATUS "GCC: All warnings enabled") | ||
endif() | ||
|
||
if( WITH_COREDEBUG ) | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3") | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3") | ||
message(STATUS "GCC: Debug-flags set (-g3)") | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
# set up output paths for executable binaries (.exe-files, and .dll-files on DLL-capable platforms) | ||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) | ||
|
||
set(MSVC_EXPECTED_VERSION 19.10) | ||
set(MSVC_EXPECTED_VERSION_STRING "MSVC 2017") | ||
|
||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS MSVC_EXPECTED_VERSION) | ||
message(FATAL_ERROR "MSVC: TrinityCore requires version ${MSVC_EXPECTED_VERSION} (${MSVC_EXPECTED_VERSION_STRING}) to build but found ${CMAKE_CXX_COMPILER_VERSION}") | ||
endif() | ||
|
||
# set up output paths ofr static libraries etc (commented out - shown here as an example only) | ||
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) | ||
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) | ||
|
||
if(PLATFORM EQUAL 64) | ||
# This definition is necessary to work around a bug with Intellisense described | ||
# here: http://tinyurl.com/2cb428. Syntax highlighting is important for proper | ||
# debugger functionality. | ||
add_definitions("-D_WIN64") | ||
message(STATUS "MSVC: 64-bit platform, enforced -D_WIN64 parameter") | ||
|
||
else() | ||
# mark 32 bit executables large address aware so they can use > 2GB address space | ||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE") | ||
message(STATUS "MSVC: Enabled large address awareness") | ||
|
||
add_definitions(/arch:SSE2) | ||
message(STATUS "MSVC: Enabled SSE2 support") | ||
|
||
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /SAFESEH:NO") | ||
message(STATUS "MSVC: Disabled Safe Exception Handlers for debug builds") | ||
endif() | ||
|
||
# Set build-directive (used in core to tell which buildtype we used) | ||
if(CMAKE_MAKE_PROGRAM MATCHES "nmake") | ||
add_definitions(-D_BUILD_DIRECTIVE=\\"${CMAKE_BUILD_TYPE}\\") | ||
else() | ||
add_definitions(-D_BUILD_DIRECTIVE=\\"$(ConfigurationName)\\") | ||
endif() | ||
|
||
# multithreaded compiling on VS | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") | ||
|
||
if((PLATFORM EQUAL 64) OR (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.23026.0)) | ||
# Enable extended object support | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") | ||
message(STATUS "MSVC: Enabled increased number of sections in object files") | ||
endif() | ||
|
||
# /Zc:throwingNew. | ||
# When you specify Zc:throwingNew on the command line, it instructs the compiler to assume | ||
# that the program will eventually be linked with a conforming operator new implementation, | ||
# and can omit all of these extra null checks from your program. | ||
# http://blogs.msdn.com/b/vcblog/archive/2015/08/06/new-in-vs-2015-zc-throwingnew.aspx | ||
if(NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.23026.0)) | ||
# makes this flag a requirement to build TC at all | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:throwingNew") | ||
endif() | ||
|
||
# Define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES - eliminates the warning by changing the strcpy call to strcpy_s, which prevents buffer overruns | ||
add_definitions(-D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES) | ||
message(STATUS "MSVC: Overloaded standard names") | ||
|
||
# Ignore warnings about older, less secure functions | ||
add_definitions(-D_CRT_SECURE_NO_WARNINGS) | ||
message(STATUS "MSVC: Disabled NON-SECURE warnings") | ||
|
||
# Ignore warnings about POSIX deprecation | ||
add_definitions(-D_CRT_NONSTDC_NO_WARNINGS) | ||
message(STATUS "MSVC: Disabled POSIX warnings") | ||
|
||
# Ignore specific warnings | ||
# C4351: new behavior: elements of array 'x' will be default initialized | ||
# C4091: 'typedef ': ignored on left of '' when no variable is declared | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4351 /wd4091") | ||
|
||
if(NOT WITH_WARNINGS) | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996 /wd4355 /wd4244 /wd4985 /wd4267 /wd4619 /wd4512") | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4996 /wd4355 /wd4244 /wd4985 /wd4267 /wd4619 /wd4512 /wd4522") | ||
message(STATUS "MSVC: Disabled generic compiletime warnings") | ||
endif() | ||
|
||
# Specify the maximum PreCompiled Header memory allocation limit | ||
# Fixes a compiler-problem when using PCH - the /Ym flag is adjusted by the compiler in MSVC2012, hence we need to set an upper limit with /Zm to avoid discrepancies) | ||
# (And yes, this is a verified , unresolved bug with MSVC... *sigh*) | ||
string(REGEX REPLACE "/Zm[0-9]+ *" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zm500" CACHE STRING "" FORCE) | ||
|
||
# Enable and treat as errors the following warnings to easily detect virtual function signature failures: | ||
# 'function' : member function does not override any base class virtual member function | ||
# 'virtual_function' : no override available for virtual member function from base 'class'; function is hidden | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /we4263 /we4264 /EHsc") | ||
|
||
# Disable incremental linking in debug builds. | ||
# To prevent linking getting stuck (which might be fixed in a later VS version). | ||
macro(DisableIncrementalLinking variable) | ||
string(REGEX REPLACE "/INCREMENTAL *" "" ${variable} "${${variable}}") | ||
set(${variable} "${${variable}} /INCREMENTAL:NO") | ||
endmacro() | ||
|
||
DisableIncrementalLinking(CMAKE_EXE_LINKER_FLAGS_DEBUG) | ||
DisableIncrementalLinking(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO) | ||
DisableIncrementalLinking(CMAKE_SHARED_LINKER_FLAGS_DEBUG) | ||
DisableIncrementalLinking(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# Copyright (C) 2008-2012 Trinity <http://www.trinitycore.org/> | ||
# | ||
# This file is free software; as a special exception the author gives | ||
# unlimited permission to copy and/or distribute it, with or without | ||
# modifications, as long as this notice is preserved. | ||
# | ||
# This program is distributed in the hope that it will be useful, but | ||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the | ||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
|
||
include(${CMAKE_SOURCE_DIR}/cmake/macros/EnsureVersion.cmake) | ||
|
||
set(_REQUIRED_GIT_VERSION "1.7") | ||
|
||
find_program(_GIT_EXEC | ||
NAMES | ||
git git.cmd | ||
HINTS | ||
ENV PATH | ||
DOC "git installation path" | ||
) | ||
|
||
if(_GIT_EXEC) | ||
execute_process( | ||
COMMAND "${_GIT_EXEC}" --version | ||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" | ||
OUTPUT_VARIABLE _GIT_VERSION | ||
ERROR_QUIET | ||
) | ||
|
||
# make sure we're using minimum the required version of git, so the "dirty-testing" will work properly | ||
ensure_version( "${_REQUIRED_GIT_VERSION}" "${_GIT_VERSION}" _GIT_VERSION_OK) | ||
endif() | ||
|
||
if(_GIT_VERSION_OK) | ||
execute_process( | ||
COMMAND "${_GIT_EXEC}" describe --tags --dirty --long --abbrev=10 | ||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" | ||
OUTPUT_VARIABLE rev_info | ||
OUTPUT_STRIP_TRAILING_WHITESPACE | ||
ERROR_QUIET | ||
) | ||
execute_process( | ||
COMMAND "${_GIT_EXEC}" show -s --format=%ci | ||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" | ||
OUTPUT_VARIABLE rev_date | ||
OUTPUT_STRIP_TRAILING_WHITESPACE | ||
ERROR_QUIET | ||
) | ||
else() | ||
message("") | ||
message(STATUS "WARNING - Missing or outdated git - did you forget to install a recent version?") | ||
message(STATUS "WARNING - Observe that for revision hash/date to work you need at least version ${_REQUIRED_GIT_VERSION}") | ||
endif() | ||
|
||
# Last minute check - ensure that we have a proper revision | ||
# If everything above fails (means the user has erased the git revision control directory or removed the origin/HEAD tag) | ||
if(NOT rev_info) | ||
# No valid ways available to find/set the revision/hash, so let's force some defaults | ||
message(STATUS "WARNING - Missing repository tags - you may need to pull tags with git fetch -t") | ||
message(STATUS "WARNING - Continuing anyway - note that the versionstring will be set to 0000-00-00 00:00:00 (Archived)") | ||
set(rev_date "0000-00-00 00:00:00 +0000") | ||
set(rev_hash "Archived") | ||
else() | ||
# Extract information required to build a proper versionstring | ||
string(REGEX REPLACE init-|[0-9]+-g "" rev_hash ${rev_info}) | ||
endif() | ||
|
||
# Its not set during initial run | ||
if(NOT BUILDDIR) | ||
set(BUILDDIR ${CMAKE_BINARY_DIR}) | ||
endif() | ||
|
||
# Create the actual revision_data.h file from the above params | ||
if(NOT "${rev_hash_cached}" MATCHES "${rev_hash}") | ||
configure_file( | ||
"${CMAKE_SOURCE_DIR}/revision_data.h.in.cmake" | ||
"${BUILDDIR}/revision_data.h" | ||
@ONLY | ||
) | ||
set(rev_hash_cached "${rev_hash}" CACHE INTERNAL "Cached commit-hash") | ||
endif() |
Oops, something went wrong.