Commit Graph

44 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
aa64226b64 Core/Misc: Suppress openssl random generator uninitialized variable errors under valgrind 2019-11-08 20:17:59 +01:00
Shauren
b095c4cd30 Core/Misc: Removed obsolete NO_CORE_FUNCS 2018-04-02 20:05:08 +02:00
Aokromes
7445670314 Update showoptions.cmake 2017-05-17 08:09:11 +02:00
Naios
2038c31100 Core/Scripting: Disallow the build directory to contain spaces
* I wasn't able to work arround a path which contains spaces,
  since it seems like a CMake specific issue.
* Closes #16947

(cherry picked from commit 42eeb28a8b)
2016-04-14 21:30:43 +02:00
Naios
848b8a4136 Core/Scripts: Split script subdirectories into independent modules
* Makes it possible to define the linkage for every module
* Move the ScriptPCH into the root directory
* Changes the SCRIPTS cmake variable to a string type:
  -> -DSCRIPTS=0 is -DSCRIPTS="minimal-static" now
     (builds commands and spells statically)
  -> -DSCRIPTS=1 is -DSCRIPTS="static" now
     (builds all modules statically)
  -> -DSCRIPTS="dynamic"
     (builds all modules dynamically)
  -> Also the default value which is provided by the SCRIPTS
     variable is overwriteable through the SCRIPTS_COMMANDS,
     SCRIPTS_SPELLS... variable.
2016-04-11 21:13:58 +02:00
Naios
f4e0945b13 Core/Build: Add the possibility to link libraries dynamically.
* makes it possible to access exported singletons from other shared lib's.
* reduces binary size
2016-03-24 01:28:55 +01:00
Naios
90274d0337 CMake: Remove the workaround for source groups below CMake 2.8.12
* Set the default option to hierarchical
* Add a new "hierarchical-folders" option which enables folders inside IDE's.

(cherry picked from commit bf773ccc41)
2016-03-19 23:19:56 +01:00
Aokromes
524c3b2e26 Build/Misc: Clarify the meaning of one setting
(cherry picked from commit 6861deaae2)
2016-01-20 21:31:10 +01:00
jackpoz
c0f56fbfd8 Core/Misc: Add valgrind support for jemalloc
Set CMake option VALGRIND to add valgrind support to jemalloc. Set CMake parameter VALGRIND_INCLUDE_DIR to the valgrind include directory.

(cherry picked from commit 60a29f7614)
2015-06-26 03:30:11 +01:00
Naios
ed4722b6e6 CMake: Use source_groups to represent the source tree
* It let ide's (like vs) display the source tree.
* Disabled by default.
* Soft requirement is cmake >= 2.8.12 .
* Offers 2 modes: flat & hierarchical.
* For detailed description see #14471
* Thanks @click for help and advises.
* Closes #14471

(cherry picked from commit c386711972)

Conflicts:
	src/server/authserver/CMakeLists.txt
2015-03-29 16:13:22 +02:00
DDuarte
90c53e8c84 Core: Nuke authserver
It has been replaced by bnetserver since grunt was deprecated
2014-11-10 20:57:39 +00:00
jackpoz
ced4fc6347 Build/CMake: CMake options cleanup after febb26d4b7 2014-10-19 12:15:30 +02:00
jackpoz
a209fc30ff Core/Misc: Avoid Helgrind reporting libstdc++ false positive race conditions 2014-09-20 22:35:13 +02:00
jackpoz
d897b55e9b Core/Build: Handle USE_SCRIPTPCH cmake flag when SCRIPTS flag is set to FALSE
Don't ignore USE_SCRIPTPCH cmake flag if SCRIPTS is set to FALSE; in this case "script" project has only source files related to scripted spells and command scripts and it must be built with precompiled headers if USE_SCRIPTPCH flag is set. This partially reverts 780ed1b01c .
2013-10-04 21:18:18 +02:00
click
d3ad8a4941 Buildsystem: Show the revision info as a full string during configurationphase as well (additional minichange to previous commit by shauren) 2013-02-27 16:19:09 +01:00
click
dfa56a33e0 Buildsystem/CMake: Correct a few mistakes regarding WITHOUT_GIT, and add a better warning during configure-phase. 2013-02-11 23:27:20 +01:00
Shauren
259a29c093 Tools/Extractors: Mmap extractors no longer depend on shared and MySQL libraries 2013-01-22 18:40:32 +01:00
click
6afaed4a02 Core: Remove the MersenneTwiser-library (SFMT is now considered stable enough for full deployment) 2012-03-27 02:27:12 +02:00
click
e2a92d4bbc Buildsystem/CMake: Add the ability to avoid linking the core with jemalloc on linux through using the -DNOJEM parameter.
WARNING: This is a developer flag only, and as such NOT documented elsewhere - we need this for valgrind and related tools.
Again : YOU HAVE BEEN WARNED! DO NOT USE THIS FLAG UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
2012-03-25 17:14:08 +02:00
click
d7715fa4b8 Buildsystem/Windows: Add support for reading commithash and commitdate directly from the executable binaries.
To view this information, check the "Product Version" field in Properties on the respective daemon.

+ Fix worldserver/authserver .rc file layouts and content (now adheres to MS standards *sighs*)
+ Change .serv info output to show corename followed by the commit date and hash
+ Include showing the versionstring on worldserver startup completion (on Aokromes' request)

Thanks to Paradox for bugging me enough about it and the initial pull-request.
2011-08-04 22:53:33 +02:00
click
1865511e21 Buildsystem: Remove an old remnant not removed in be6b73145b (no use in showing a report about installing SQL-files when it's not available anymore...) 2011-05-09 10:54:27 +02:00
click
6a431f745c Core: get rid of the revision-id once and for all - it's not useful in a DVCS at all 2011-04-28 18:53:23 +02:00
click
3a7a01e7c7 Buildsystem: Fix a logical error in git revision-detection, and also
make the warning text a little bit more "Hello Cpt.Obvious" obvious for
users that can't read. (It now includes the word WARNING in the warnings)
2011-01-11 23:54:45 +01:00
click
67fade84d3 Core/Commands: Enable SQL query logging by config and command )patch by leak)
Closes issue 4853.

--HG--
branch : trunk
2010-11-19 13:13:07 +01:00
click
92a379da7f BuildSystem: Clean up the revision.h generation a tad bit
--HG--
branch : trunk
2010-10-14 23:47:59 +02:00
click
b87d8f4700 Buildsystem: Overhaul of the CMake buildsystem:
- utilize CMake for completely generating revision.h (kills off genrev and revision.h targets):
  - pull and set correct revision-ID/hash from Mercurial (hg) when using regular repository sourcetree
  - pull and set correct revision-ID/hash from archived releases (when pulled from googlecode)
  - set and use _BUILD_DIRECTIVE definition (earlier part of revision.h) as compiletime definition
- delete genrev and related buildsystems
  (now deprecated)
- Move some files around to adhere to buildsystem structure
Thanks to Shauren for figuring out the definition-behaviour for MSVC while he was in the shower

--HG--
branch : trunk
rename : cmake_uninstall.cmake.in => cmake/platform/unix/cmake_uninstall.in.cmake
2010-09-29 23:42:09 +02:00
click
726e5cf466 Buildsystem/Core: Add new build-flag WITH_SQLDEBUG - adds support for enabling/disabling SQL-query logging
--HG--
branch : trunk
2010-09-17 20:36:29 +02:00
click
3b91ce95a6 BuildSystem: Sort out issues with mysql-libraries under *nix (and should now also work properly for Win32)
- Rename the "EXTERNAL_MYSQL" flag to "USE_MYSQL_SOURCES" to reflect it's PROPER use (and ensure that it's ONLY used on Win32)
- Remove a lingering "scripts" definition (the "scripts"-target is always included, but only from compiled parts (broke builds with -DSCRIPTS=0)

--HG--
branch : trunk
2010-09-08 19:20:38 +02:00
click
4faf53881f BuildSystem/Macros: Revert FindMySQL.cmake changes from ea96a5d888 - handled with simple if-tests instead
BuildSystem: Adjust buildfiles so that they reflect their proper parameters (will change when we've cleaned it up even more)

--HG--
branch : trunk
2010-09-08 14:40:45 +02:00
Xanadu
220c207294 BuildSystem/Windows: * Added 5.1.50 (GA) MySQL client sources for crosscompiling (or lazy) windows people.
* Added an option to autosearch for your own installed MySQL as before. Note that default setting is to use the internal MySQL.
* You can now build 32-bit even if your MySQL is x64 and vice versa.
* Recommended MySQL server version for use with provided MySQL client sources is 5.1.x.
* If your server version is different, let CMake autofind and use it instead (check EXTERNAL_MYSQL option)

--HG--
branch : trunk
2010-09-07 01:26:57 +02:00
click
cf841c8337 Buildsystem: Split out the resultlist from the options, and print it AFTER we've grabbed all the settings
--HG--
branch : trunk
2010-08-28 21:51:28 +02:00