Commit Graph

346 Commits

Author SHA1 Message Date
Shauren
add53fb3ef Build: Update required cmake version to 3.18
* Remove cotire
2022-09-06 19:27:50 +02:00
Shauren
b8f18fad29 Core/Crypto: Remove support for OpenSSL 1.0 2022-09-06 12:51:08 +02:00
Shauren
e9152679d7 Build: Fixed finding mysql binary on first cmake run
Closes #28133
2022-07-19 00:33:07 +02:00
Shauren
ae6b9e6c41 Build: Modernize mysql finding script 2022-06-20 22:43:22 +02:00
Shauren
091e71502c Build: Improve automatic finding of libraries on mac 2022-06-17 18:04:02 +02:00
vconcat
675af93f13 Dep: Support MySQL installations from vcpkg (#27780)
(cherry picked from commit f47bd13db3)
2022-06-10 15:18:39 +02:00
Shauren
370dd97998 Build: Prioritize manually selected openssl location over default installed one 2022-05-03 19:02:48 +02:00
Shauren
bc87f7b337 Core/Crypto: Switch away from most deprecated openssl functions and removed upper version limit 2022-05-03 17:03:57 +02:00
Trulsrock
65521a40d2 Added from_hex for OpenSSL version parsing (#26730)
(cherry picked from commit 657970fb69)
2022-03-11 19:08:48 +01:00
Carbenium
548e5bf0c3 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

(cherry picked from commit 0ea73a2905)
2022-03-11 13:53:43 +01:00
Shauren
15ff8fff36 Build: Set correct year in VER_LEGALCOPYRIGHT_STR
(cherry picked from commit 68a490923d)
2022-03-10 16:07:54 +01:00
Jan Van Buggenhout
cde1571c1b CONF_DIR (#26360)
(cherry picked from commit d8940f35a9)
2022-03-08 22:43:26 +01:00
Giacomo Pozzoni
e0ad19dc96 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>
(cherry picked from commit dc78b5a6a7)
2022-03-06 22:24:18 +01:00
Kargatum
373ed8f46b Core: whitespace cleanup, reduce double blank line to single (#25795)
* Core/Misc: fix double empty line

* worldserver.conf

(cherry picked from commit a32b6b8ac4)
2022-03-05 20:07:57 +01:00
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