Commit Graph

307 Commits

Author SHA1 Message Date
Shauren
320bf3755b Build: Prioritize manually selected openssl location over default installed one
(cherry picked from commit 370dd97998)
2022-06-16 12:37:00 +02:00
Shauren
77091ed599 Core/Crypto: Switch away from most deprecated openssl functions and removed upper version limit
(cherry picked from commit bc87f7b337)
2022-06-16 12:37:00 +02:00
vconcat
f47bd13db3 Dep: Support MySQL installations from vcpkg (#27780) 2022-04-05 11:45:29 +02:00
Shauren
e073e09b86 Build: Modernize readline finding script
(cherry picked from commit 203f1197b4)
2021-10-06 10:36:33 +02:00
Shauren
77596dba67 Build: Update FindOpenSSL.cmake and remove custom FindGit 2021-09-22 18:49:33 +02:00
Shauren
883f6eeb36 Build: Fixed branch name displayed by appveyor binaries
(cherry picked from commit 85671f20d8)
2021-09-05 15:03:14 +02:00
Shauren
bec81b1d7b Build: Replace git describe with more script friendly alternative, git rev-parse and git diff-index
(cherry picked from commit 29659b4192)
2021-08-31 11:30:42 +02:00
Trulsrock
657970fb69 Added from_hex for OpenSSL version parsing (#26730) 2021-07-21 20:00:49 +02:00
Carbenium
0ea73a2905 Build: Remove fine-grained CXX feature checks
With C++17 enabled these don't serve an purpose anymore.
See https://cmake.org/cmake/help/latest/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html
2021-06-28 00:43:39 +02:00
Shauren
68a490923d Build: Set correct year in VER_LEGALCOPYRIGHT_STR 2021-05-16 22:32:42 +02:00
Jan Van Buggenhout
d8940f35a9 CONF_DIR (#26360) 2021-04-17 15:52:32 +02:00
Giacomo Pozzoni
dc78b5a6a7 CMake: Add WITH_BOOST_STACKTRACE option to use libbacktrace (#26119)
* CMake: Add WITH_BOOST_STACKTRACE option to use libbacktrace

* Allow to specify where backtrace.h header is with cmake option -DBOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE="/usr/lib/gcc/x86_64-linux-gnu/10/include/backtrace.h"

Co-authored-by: Trond B. Krokli <38162891+illfated@users.noreply.github.com>
2021-02-21 22:16:13 +01:00
Kargatum
a32b6b8ac4 Core: whitespace cleanup, reduce double blank line to single (#25795)
* Core/Misc: fix double empty line

* worldserver.conf
2021-01-03 11:47:07 +01:00
Giacomo Pozzoni
a4e93d779c Improve multithreading of mmaps_generator (#25625)
* Build/Misc: Add a few *San CMake flags

Add the following flags for the related tools:
- MSAN for Memory Sanitizer
- UBSAN for Undefined Behavior Sanitizer
- TSAN for Thread Sanitizer

* Remove unused parameter

* Fix UBSan reported issue

* Disable G3D buffer pools when using Thread Sanitizer as it has its custom locking mechanisms

* Code cleanup

* Move threads from maps to tiles

* Move tile building logic to TileBuilder class

* Fix memory leak in TileBuilder

* Fix build

* Store TileBuilder as raw pointer for now, it will be changed later on to use modern C++ constructs

* Fix crash on shutdown

* Revert pvs-studio change

* Fix generating 1 single tile not closing the program
2020-12-06 17:52:13 +01:00
Shauren
aba07047a0 Build: Fixed finding OpenSSL 1.1.1 installed from .msi packages instead of .exe
Closes #24664
2020-09-09 13:44:46 +02:00
Kargatum
277b401df4 Core/Mysql: support MariaDB 10.5 (#25359) 2020-08-30 22:47:48 +02:00
Treeston
cd30e0b86c Common/Utilities: Centralize string -> T conversion in StringConvert.h (PR #25335) 2020-08-26 23:31:45 +02:00
Treeston
27b1930d97 Build: Add Clang version guard to CMake (PR #25324) 2020-08-24 17:44:38 +02:00
Giacomo Pozzoni
41d70a5905 Build/GCC: Raise required version to 8.3.0 (#25297)
Even when building with Clang, make sure to have libstdc++ >= 8
2020-08-21 13:51:29 +02:00
Shauren
c8fed48b16 Build: Enable /permissive- flag on msvc 2020-08-04 15:50:31 +02:00
Giacomo Pozzoni
36ef487a90 Core/Metric: Add new cmake option WITH_DETAILED_METRICS to enable more metrics (#25136)
* Core/Metric: Add new cmake option WITH_DETAILED_METRICS to enable more metrics

Add more detailed metrics in World::UpdateSessions().

* Attempt using C++17 features

* Fix cmake typo

Co-authored-by: NoName <322016+Faq@users.noreply.github.com>

* Fix build with WITHOUT_METRICS

* Update Performance profiling dashboard with Update sessions panel

* Add panel to show sessions with update time above 100 ms

* Move legends on the right and add max update time diff in the legend of sessions

Co-authored-by: NoName <322016+Faq@users.noreply.github.com>
2020-07-27 14:00:28 +02:00
Carbenium
796e2b32e0 Build: Add WITH_LD_GOLD option to use gold linker on unix
gold is an ELF-only linker which has a better performance
than the default ld.
2020-07-25 18:00:20 +02:00
Carbenium
6a28ee7b2a dep: Add catch2 unit test framework and wire it up
To enable the test suite, make sure to configure CMake with -DBUILD_TESTING=1 , since it is disabled by default. The catch2 dependency will be downloaded during configure time.

Also add a new target "tests-common", which includes unit tests for the "common" project. To finally run the tests use the "test" target.

CircleCI: Run unit tests
2020-07-24 12:00:54 +02:00
Giacomo Pozzoni
3c0ac7302f Core/Metric: Add more metrics about World::Update() loop (#25098)
* Core/Metric: Add more metrics about World::Update() loop

* Add new Performance profiling grafana dashboard

* Add new cmake setting WITHOUT_METRICS that disables all metrics

As new metrics are added, someone might want to disable them if unused.

* Add more metrics about World::Update() loop

* Remove old performance profiling features

Remove "server set difftime" command, "-RecordUpdateTimeDiffInterval" and "MinRecordUpdateTimeDiff" worldserver config settings and their related code.
The whole UpdateTime class could be removed too.

* Update and rename 2020_07_99_99_world.sql to 2020_07_24_00_world.sql
2020-07-24 00:30:16 +02:00
Peter Keresztes Schmidt
e6e5775be8 Build: Enable -Wimplicit-fallthrough on clang (#25056)
* Misc: Use [[fallthrough]] attribute instead of comment to mark intentional fallthroughs

Related: #25006

* Misc: Add some missing breaks (no-ops) to satisfy clang

Related: #25006
Closes #25055

* Build: Enable -Wimplicit-fallthrough on clang

Closes #25006
2020-07-18 20:43:16 +02:00
Shauren
524d167398 Dep: Switch to boost process instead of old standalone version 2020-07-15 19:33:12 +02:00
Shauren
042b1abfd7 Fix warnings related to Vector3::operator= and remove -Wno-deprecated-copy suppression 2020-07-13 18:35:13 +02:00
ipriver
a46d047f94 fixed indentation for cmake files 2020-06-24 14:42:02 +02:00
ipriver
dc467ee0f6 Additional cmake entry for configs
Closes #24812

Co-authored-by: Carbenium <carbenium@outlook.com>
2020-06-19 15:06:03 +02:00
Max Drosdo.www
60e813df6b removed legacy cmake libsdir entry (#24813) 2020-06-16 14:22:46 +02:00
Peter Keresztes Schmidt
cb5694607d CP of CMake: Prepare for target_precompile_headers (#24810) for 3.3.5 (#24816)
* CMake: Remove guards around CMP0043 and CMP0054

We require CMake >= 3.8 which includes the policies.
CMP0043 OLD behaviour is still required by cotire.

(cherry picked from commit 18ad767226)

* CMake: Use target_precompile_headers instead of cotire with CMake >= 3.16.0

(cherry picked from commit f387673aa3)
2020-06-16 13:38:37 +02:00
Giacomo Pozzoni
8c09b6e58b Cherry-pick some cmake commits (#24720)
* Build system: Support  new in cmake 3.17 Ninja Multi-Config generator

(cherry picked from commit 369b618d4f)

* Build system: Fixed PCH with MSVC & Ninja generator

(cherry picked from commit d669f46b6d)

* Core: Fix clang 10 warnings

(cherry picked from commit 7272508cb4)

# Conflicts:
#	src/common/Utilities/Util.h
#	src/server/bnetserver/REST/LoginRESTService.cpp
#	src/server/game/Entities/Object/Position.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Guilds/GuildFinderMgr.h
#	src/server/game/Movement/Spline/MoveSplineFlag.h
#	src/server/shared/Dynamic/LinkedList.h

* Build system: Set -Wno-deprecated-copy only for clang 10

(cherry picked from commit 7fdeb259ba)

* Core/Misc: GCC build and warning fixes

(cherry picked from commit 4d69cc1c56)

# Conflicts:
#	src/common/Utilities/Util.cpp
#	src/server/database/Database/MySQLConnection.cpp
#	src/server/game/Battlefield/Zones/BattlefieldTB.cpp
#	src/server/game/DataStores/M2Stores.cpp
#	src/server/game/DungeonFinding/LFGMgr.cpp
#	src/server/game/DungeonFinding/LFGPlayerData.cpp
#	src/server/game/Entities/GameObject/GameObject.cpp
#	src/server/game/Entities/Item/Item.cpp
#	src/server/game/Entities/Object/Updates/UpdateFields.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/RestMgr.cpp
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Handlers/PetHandler.cpp
#	src/server/game/Server/Packets/GuildPackets.h
#	src/server/game/Spells/Auras/SpellAuraEffects.cpp
#	src/server/game/Spells/Auras/SpellAuras.cpp
#	src/server/game/Spells/Spell.cpp
#	src/server/game/Spells/SpellInfo.cpp
#	src/server/game/Spells/SpellMgr.cpp
#	src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp
#	src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp
#	src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
#	src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
#	src/server/scripts/Northrend/zone_sholazar_basin.cpp
#	src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
#	src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
#	src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
#	src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp
#	src/tools/vmap4_extractor/gameobject_extract.cpp
#	src/tools/vmap4_extractor/model.cpp
#	src/tools/vmap4_extractor/vec3d.h

* Build system: Print found git version when warning about it being too old

(cherry picked from commit 1ae72db201)

* Build system: Removed hard requirement on BOOST_ROOT being set as environment variable, it can now be also passed as command line argument to cmake and fix compile warning with boost 1.73

(cherry picked from commit 161944b764)

# Conflicts:
#	dep/boost/CMakeLists.txt

* Remove some code that was already removed from 335 and then cherry-picked into master

Co-authored-by: Shauren <shauren.trinity@gmail.com>
2020-05-31 14:17:26 +02:00
Giacomo Pozzoni
7c91c423d0 Build: Add support to MariaDB 10.4 on Windows
MariaDB 10.4 (latest stable) is the only supported version.
2020-04-24 19:35:40 +02:00
Aokromes
0fa366cbda Misc: Deprecate mysql 5.6 2020-04-10 18:08:18 +02:00
Shauren
2a2867cdc0 Build: Delete FindBoost.cmake and rely on the one that ships with cmake instead
(cherry picked from commit e5b12a76dc)

# Conflicts:
#	cmake/macros/FindBoost.cmake
2020-04-05 15:14:28 +02:00
Giacomo Pozzoni
1df52da0b0 Require Visual Studio 2019 16.4 or greater (#24214)
* CI/AppVeyor: Add appveyor.yml file

* Build: Require Visual Studio 2019 16.4 or greater

* CI/AppVeyor: Upgrade to VS2019 image

* Update cmake error message

* CI/AppVeyor: Fix appveyor VS 2019 configuration
2020-04-03 21:14:09 +02:00
daMaex
ce449f6b53 Core: build on aarch64 with gcc (#24216)
* build on aarch64 with gcc

* Core/aarch64: readability on preprocessor macro

* Core/aarch64: TC C++ codestyle adjustment
2020-03-01 20:16:57 +01:00
Giacomo Pozzoni
726d5e91b5 Build: Enable and require c++17 (#23868)
* Build: Enable and require c++17

* Build: Raise Visual Studio version from 2017 15.2 to 2017 15.9

* Build: Raise GCC version from 6.3.0 to 7.1.0

* Reduce branch differences

* Fix build after latest merge

* Cleanup after latest merge
2020-02-08 18:14:09 +01:00
Aokromes
ed93932537 New year
Say bye bye to every year changing dates
2020-01-02 06:25:50 +01:00
vincent-michael
5c0aa2f2bd Build: Updated Find Boost versions 2019-12-20 19:58:35 +01:00
Shauren
5f06c476f6 Core/DBLayer: Support using mysql 8
(cherry picked from commit c3a9d56b56)
2019-11-09 13:49:27 +01:00
jackpoz
580f40769c Build/Misc: Add ASan CMake flag
Allow to enable/disable Address Sanitizer in Clang and GCC from CMake flag "ASAN" of type Boolean. It can be enabled passing -DASAN=TRUE to CMake.
2019-10-19 20:12:48 +02:00
jackpoz
3d3b7f438c Buildsystem: Fix finding VS 2019 compiled boost libs 2019-04-19 22:37:50 +02:00
Shauren
12852ddb30 Build/Misc: Removed -DDEBUG from clang compile options
(cherry picked from commit b0609757d3)
2019-01-18 19:58:02 +01:00
Treeston
fcfcb0eb6f Happy New Year, folks. It's 2019! 2019-01-01 15:45:25 +01:00
Aokromes
33c723685f Misc: Deprecate any mysql under 5.6
Mysql 5.5 is deprecated on few hours.
5.5	December 3, 2010; 8 years ago[50]	5.5.61	2018-07-27	December 2018
https://en.wikipedia.org/wiki/MySQL#Release_history
closes #22874
2018-12-31 18:11:29 +01:00
vincent-michael
234e1166d7 Build: Added Boost version 1.68 to FindBoost 2018-10-04 18:28:13 +02:00
Aokromes
6f39c71903 Cmake: Update outdated string 2018-09-12 10:56:58 +02:00
vincent-michael
f3833b426d Build: Added Boost version 1.67 to FindBoost
https://www.boost.org/users/history/version_1_67_0.html
2018-04-15 12:36:37 +02:00
Shauren
1dd44207bd Buildsystem: Fixed finding openssl 1.1 libs
(cherry picked from commit 413cf257cd)
2018-03-20 17:55:22 +01:00