Commit Graph

358 Commits

Author SHA1 Message Date
Shauren
eb847ff537 Build: Fixed msvc version check 2023-10-29 12:14:36 +01:00
Shauren
0a0b420d86 Build: Support ASAN on msvc 2023-08-22 12:56:13 +02:00
Shauren
c489e26207 Dep: Support mysql 8.1 on windows 2023-08-07 19:25:33 +02:00
Shauren
0aa644287c Build/GCC: Disable useless warning 2023-07-30 00:23:31 +02:00
Shauren
1ed8bfa080 Build: Increase required msvc version slightly 2023-07-25 11:42:08 +02:00
Ovahlord
d535977c6d Build: moved MSVC warning C5054 from warning level 4 to 3 2023-07-11 18:49:52 +02:00
Shauren
eadafb0347 Core/DBLayer: Relaxed restrictions on which Field class member function can be used to access column value from "strict match" to "must not truncate" 2023-05-14 16:30:05 +02:00
Shauren
8d353f20fd Build: Fixed copypaste mistake in appleclang version check 2023-04-10 14:09:23 +02:00
Shauren
083b8d6c84 Core/Misc: Fix build with libc++
Closes #28909
2023-04-10 00:08:32 +02:00
Shauren
03837b2525 Build: Make genrev more resilient to invalid source code checkouts 2023-02-03 11:14:59 +01:00
Shauren
989f84c5f2 Build: Enable C++20 2023-01-01 00:26:53 +01:00
Shauren
0a1b40241a Build: Update required compilers to current debian stable and VS 2022
GCC: 10
Clang: 11
MSVC: 2022
2023-01-01 00:26:53 +01:00
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