Commit Graph

332 Commits

Author SHA1 Message Date
Shauren
0b846b2107 Build: Partial support for clang-cl 2022-02-16 20:22:15 +01:00
Shauren
bd4e5b6d0b Build: New CMake option -DBUILD_TIME_ANALYSIS=1 for clang (enables detailed compile time statistics that can be later viewed with ClangBuildAnalyzer) 2022-02-11 22:25:49 +01:00
Shauren
fe35971d2f Build: Instantiate templates during PCH generation with clang 11+ (this should make PCH more effective in reducing compile times, closer to MSVC) 2022-02-11 22:23:42 +01:00
Kargatum
c3bd803da3 Core/Mysql: support MariaDB 10.5 (#25359)
(cherry picked from commit 277b401df4)
2022-02-04 21:34:01 +01:00
Treeston
be9dadc189 Common/Utilities: Centralize string -> T conversion in StringConvert.h (PR #25335)
(cherry picked from commit cd30e0b86c)
2022-02-04 00:27:13 +01:00
Treeston
cfcfe71097 Build: Add Clang version guard to CMake (PR #25324)
(cherry picked from commit 27b1930d97)
2022-02-04 00:27:13 +01:00
Giacomo Pozzoni
f8b6137a4c Build/GCC: Raise required version to 8.3.0 (#25297)
Even when building with Clang, make sure to have libstdc++ >= 8

(cherry picked from commit 41d70a5905)
2022-02-04 00:27:11 +01:00
Shauren
2864efdc53 Build: Disable Visual Studio 2022 MSBuild resource manager to make compile take only as much time as it does in Visual Studio 2019 2022-01-28 12:52:05 +01:00
Shauren
41fe9a84d4 Build: Enable /permissive- flag on msvc
(cherry picked from commit c8fed48b16)
2022-01-26 14:20:47 +01:00
Giacomo Pozzoni
21e9fac8bd 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>
(cherry picked from commit 36ef487a90)
2022-01-24 12:21:36 +01:00
Carbenium
b336ed8996 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.

(cherry picked from commit 796e2b32e0)
2022-01-23 23:07:56 +01:00
Carbenium
f837f28171 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
(cherry picked from commit 6a28ee7b2a)
2022-01-23 22:48:35 +01:00
Giacomo Pozzoni
e8583d04f6 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

(cherry picked from commit 3c0ac7302f)
2022-01-23 22:45:25 +01:00
Peter Keresztes Schmidt
44ea32ace4 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
2022-01-23 22:16:15 +01:00
Shauren
2b312c7bd2 Dep: Switch to boost process instead of old standalone version
(cherry picked from commit 524d167398)
2022-01-23 20:39:15 +01:00
Shauren
d4568a90b1 Fix warnings related to Vector3::operator= and remove -Wno-deprecated-copy suppression
(cherry picked from commit 042b1abfd7)
2022-01-23 00:18:39 +01:00
Shauren
73b4b1733a Build: Enable some msvc warnings that are enabled for other compilers 2022-01-21 13:43:19 +01:00
ipriver
bde36062b7 fixed indentation for cmake files
(cherry picked from commit a46d047f94)
2022-01-06 23:40:39 +01:00
ipriver
8979493bb7 Additional cmake entry for configs
Closes #24812

Co-authored-by: Carbenium <carbenium@outlook.com>
(cherry picked from commit dc467ee0f6)
2022-01-06 22:54:29 +01:00
Max Drosdo.www
aa409f8993 removed legacy cmake libsdir entry (#24813)
(cherry picked from commit 60e813df6b)
2022-01-06 21:41:48 +01:00
Giacomo Pozzoni
89e183704c 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

(cherry picked from commit a4e93d779c)
2022-01-04 20:44:25 +01:00
Giacomo Pozzoni
63e5092f14 Build: Add support to MariaDB 10.4 on Windows
MariaDB 10.4 (latest stable) is the only supported version.

(cherry picked from commit 7c91c423d0)
2022-01-01 20:16:37 +01:00
Aokromes
9d70595957 Misc: Deprecate mysql 5.6
(cherry picked from commit 0fa366cbda)
2022-01-01 13:29:04 +01:00
daMaex
31efaaac40 Core: build on aarch64 with gcc (#24216)
* build on aarch64 with gcc

* Core/aarch64: readability on preprocessor macro

* Core/aarch64: TC C++ codestyle adjustment

(cherry picked from commit ce449f6b53)
2021-12-22 20:50:53 +01:00
Giacomo Pozzoni
fe489e2be1 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

(cherry picked from commit 726d5e91b5)
2021-12-21 01:20:51 +01:00
jackpoz
58fe0f9e4a 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.

(cherry picked from commit 580f40769c)
2021-12-18 23:03:00 +01:00
Shauren
203f1197b4 Build: Modernize readline finding script 2021-10-01 18:54:52 +02:00
Shauren
4d153b6cb9 Build: Update FindOpenSSL.cmake and remove custom FindGit
(cherry picked from commit 77596dba67)
2021-10-01 13:02:03 +02:00
Shauren
629ec3a14d Build: Check -Wno-deprecated-copy existence using check_cxx_source_compiles instead of hardcoding clang version number 2021-10-01 11:19:39 +02:00
Shauren
376ac0eeba Buildsystem: Separate strict database type checks from TRINITY_DEBUG/WITH_COREDEBUG option
(cherry picked from commit ddd60a948c)
2021-09-06 21:01:48 +02:00
Shauren
85671f20d8 Build: Fixed branch name displayed by appveyor binaries 2021-09-05 14:49:02 +02:00
Shauren
29659b4192 Build: Replace git describe with more script friendly alternative, git rev-parse and git diff-index 2021-08-31 11:29:07 +02:00
jackpoz
89a232de3a 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.

(cherry picked from commit db5c9867e2)
2021-08-08 21:21:34 +02:00
jackpoz
65f4666063 Dep/Jemalloc: Update to Jemalloc 5.0.1
(cherry picked from commit 92cd9bd70d)
2021-02-15 19:13:25 +01:00
Shauren
53abc254c7 Build: Fixed finding OpenSSL 1.1.1 installed from .msi packages instead of .exe
Closes #24664

(cherry picked from commit aba07047a0)
2020-09-09 22:27:41 +02:00
Carbenium
f387673aa3 CMake: Use target_precompile_headers instead of cotire with CMake >= 3.16.0 2020-06-16 09:29:31 +02:00
Shauren
1ae72db201 Build system: Print found git version when warning about it being too old 2020-05-30 17:42:14 +02:00
Shauren
4d69cc1c56 Core/Misc: GCC build and warning fixes 2020-05-21 22:15:58 +02:00
Shauren
7fdeb259ba Build system: Set -Wno-deprecated-copy only for clang 10 2020-04-26 01:48:41 +02:00
Shauren
7272508cb4 Core: Fix clang 10 warnings 2020-04-26 01:25:50 +02:00
Shauren
369b618d4f Build system: Support new in cmake 3.17 Ninja Multi-Config generator 2020-04-16 17:53:36 +02:00
Shauren
e5b12a76dc Build: Delete FindBoost.cmake and rely on the one that ships with cmake instead 2020-04-05 01:41:35 +02:00
Giacomo Pozzoni
77154e0c03 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

(cherry picked from commit 1df52da0b0)
2020-04-04 18:35:58 +02:00
Aokromes
b0bf1275ee New Year 2020-01-02 06:44:10 +01:00
Shauren
aa64226b64 Core/Misc: Suppress openssl random generator uninitialized variable errors under valgrind 2019-11-08 20:17:59 +01:00
Shauren
c3a9d56b56 Core/DBLayer: Support using mysql 8 2019-11-01 16:21:14 +01:00
vincent-michael
5620eb9463 Update copyright note for 2019
auto happy = new year(2019);
2019-01-01 10:14:33 +01:00
Aokromes
5e115c620b 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:12:26 +01:00
vincent-michael
9ffa906feb Build: Added Boost version 1.68 to FindBoost 2018-10-04 18:04:10 +02:00
vincent-michael
878496f871 Build: Added Boost version 1.67 to FindBoost
https://www.boost.org/users/history/version_1_67_0.html
2018-04-15 11:44:46 +02:00