Commit Graph

41 Commits

Author SHA1 Message Date
Giacomo Pozzoni
dc78b5a6a7 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>
2021-02-21 22:16:13 +01:00
Giacomo Pozzoni
a4e93d779c 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
2020-12-06 17:52:13 +01: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
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
Shauren
524d167398 Dep: Switch to boost process instead of old standalone version 2020-07-15 19:33:12 +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
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
Shauren
ddd60a948c Buildsystem: Separate strict database type checks from TRINITY_DEBUG/WITH_COREDEBUG option 2018-03-14 20:50:54 +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
jackpoz
92cd9bd70d Dep/Jemalloc: Update to Jemalloc 5.0.1 2017-11-25 13:18:21 +01:00
Aokromes
edd2c1c039 Update showoptions.cmake 2017-05-17 08:08:46 +02:00
Naios
42eeb28a8b 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
2016-04-14 20:31:04 +02:00
Naios
8660f90bdf 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.

(cherry picked from commit 848b8a4136)
2016-04-11 21:41:58 +02:00
Naios
2613413608 Core/Build: Add the possibility to link libraries dynamically.
* makes it possible to access exported singletons from other shared lib's.
* reduces binary size

(cherry picked from commit f4e0945b13)
2016-03-24 02:38:54 +01:00
Naios
bf773ccc41 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.
2016-03-18 14:28:01 +01:00
Aokromes
6861deaae2 Build/Misc: Clarify the meaning of one setting 2016-01-05 13:11:27 +01:00
jackpoz
60a29f7614 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.
2015-06-20 23:01:53 +02:00
Naios
c386711972 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
2015-03-29 16:08:28 +02:00
jackpoz
e3ab58ce4e Build/CMake: CMake options cleanup after febb26d4b7 2014-10-19 12:17:00 +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