* Misc: Use [[fallthrough]] attribute instead of comment to mark intentional fallthroughs
Related: #25006
* Misc: Add some missing breaks (no-ops) to satisfy clang
Related: #25006Closes#25055
* Build: Enable -Wimplicit-fallthrough on clang
Closes#25006
* 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)
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)
* Remove the usage of global flags and definitions
set through the CMAKE_CXX_FLAGS variable.
* Use cmake target compile features for setting the
CXX standard automatically.
* Make C++14 globally available in the project
* Closes#21033
(cherry picked from commit e60c1f84a7)
* 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.
On newer versions of Xcode, the preprocessor macro #DEBUG is not defined by default. In order to set the debug flag it has to be set manually. If this does not happen then in the "Common.h" file the preprocessor will assume that we are building under a release mode instead of the debug mode.
Ref: ad0cc83c84
*Mac OS X fires off over 200 warnings related to gsoap about the deprecated register method. CMake has been patched to remove this warning.
*Updated all occurences of finite() to std::isfinite. The method finite() is not standardized by anyone aside from BSD. std::isfinite() however is standarized by C++
*Removed -ncurses and -pthread from OS X compilation. Now that we use Boost and C++11 there is no longer a need for pthread in OS X. All it does is throw a warning. However, ncurses isn't needed either as it's built into the OS X SDK and linked by default.
Note: There are only 5 remaining warnings left when compiling on OS X. I did not attempt to fix these as they were related to 3rd party libraries statically linked into the code. The 5 warnings left are all related to unused variables.
** Info from CMake:
** The OLD behavior for this policy is to place definition values given to add_definitions directly in the generated build rules without attempting to escape anything.
** The NEW behavior for this policy is to generate correct escapes for all native build tools automatically.
If this breaks build, let us know on irc : irc.rizon.net/#trinity
-Wwrite-strings is default enabled when -Wall is set in clang/gcc, hence removed.
-Woverloaded-virtual is now enabled for C++-code only, this removes the useless warnings when dabbling with C-only code.