Commit Graph

293 Commits

Author SHA1 Message Date
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
Shauren
ddd60a948c Buildsystem: Separate strict database type checks from TRINITY_DEBUG/WITH_COREDEBUG option 2018-03-14 20:50:54 +01:00
Warlockbugs
efef6b5e36 Core/Crypto: Transitional Cryptography update for OpenSSL 1.1 (#21533)
Support for both OpenSSL 1.0 LTS and OpenSSL 1.1 versions.

Many Linux distributions are still on 1.0 and will stay on LTS for quite
some time.

Port of CMaNGOS commit: e1b0048f05
2018-03-04 15:53:41 +01:00
jackpoz
db5c9867e2 Core/Misc: Add PERFORMANCE_PROFILING CMake option
Add a new CMake option called PERFORMANCE_PROFILING that should be used only when profiling the performance.
This option is unsupported, do not report any issue happening when enabling this option.
2018-02-17 23:29:34 +01:00
tkrokli
f6b6f57a6d Update copyright note for 2018
Best wishes for the new year.
2018-01-01 01:55:29 +01:00
Naios
d3d003d69e Build: Re-enable the /Zm workaround for MSVC (cotire version)
* Thanks Spec for reporting this issue
* See https://community.trinitycore.org/topic/120-compile-or-cmake-problems/?do=findComment&comment=83912
* Ref 697b4dbef2
2017-12-23 02:14:05 +01:00
Naios
9d0400211d Build: Export a default interface which doesn't hide symbols in unix automatically
(cherry picked from commit db5d5a03be)
2017-12-21 23:31:11 +01:00
ariel-
b1ad5df1ee Build: fixed finding Boost 1.66 named libraries... somewhat 2017-12-21 03:24:08 -03:00
ariel-
d8faa089e4 Build: fix typo in FindBoost 2017-12-21 03:05:23 -03:00
ariel-
42cc93b940 Build/Misc: added Boost 1.66 to FindBoost.cmake 2017-12-21 02:46:47 -03:00
Naios
b9b667f925 Build: Require Visual Studio 2017 or greater
* See the deprecation notice at
  https://community.trinitycore.org/topic/13294-gcc-49-visual-studio-2015-end-of-life/
2017-12-17 20:22:34 +01:00
Naios
697b4dbef2 Build: Experimentally disable the /Zm workaround for MSVC 2017-12-17 20:22:34 +01:00
Naios
92f96fc10e Build: Use the cotire library for precompiled header handling
* Required for handling flags inherited by linked projects
  correctly in the corresponding precompiled header.
* Reduces the maintenance effort for precompiled headers
2017-12-17 20:22:34 +01:00
Naios
e60c1f84a7 Build: Use interface targets for inheriting flags and definitions
* Remove the usage of global flags and definitions
  set through the CMAKE_CXX_FLAGS variable.
* Use cmake target compile features for setting the
  CXX standard automatically.
* Make C++14 globally available in the project
* Closes #21033
2017-12-17 20:22:33 +01:00
Naios
5a9ccae3e1 Build: Set the minimum required compiler version to GCC 6.3
* This is the current GCC version of debian 9
2017-12-17 20:22:33 +01:00