* Build system: Support new in cmake 3.17 Ninja Multi-Config generator
(cherry picked from commit 369b618d4f160816818681ed7e41063e2d9ba5b5)
* Build system: Fixed PCH with MSVC & Ninja generator
(cherry picked from commit d669f46b6d5190dabc686a35656e8b03f5ec325b)
* Core: Fix clang 10 warnings
(cherry picked from commit 7272508cb4b51ec5591b6f0e542ea29091db7546)
* Build system: Set -Wno-deprecated-copy only for clang 10
(cherry picked from commit 7fdeb259ba398d5d9343a5dcd1a89562dfcbe981)
* Core/Misc: GCC build and warning fixes
(cherry picked from commit 4d69cc1c567180b408ddbadb9edf26859cf4c006)
* Build system: Print found git version when warning about it being too old
(cherry picked from commit 1ae72db201189877c1b863fac140eb4b0a45c5bb)
* Build system: Removed hard requirement on BOOST_ROOT being set as environment variable, it can now be also passed as command line argument to cmake and fix compile warning with boost 1.73
(cherry picked from commit 161944b7643c62f9e7705c64e42d42e5d07f1959)
* Remove some code that was already removed from 335 and then cherry-picked into master
Co-authored-by: Shauren <shauren.trinity@gmail.com>
(cherry picked from commit 8c09b6e58b0e4f33b7a8e376a28709e693cf2914)
* 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.
* Setting all compiler flags in the cache led to circular bloating of
msvc cxx parameters (was visible in console) which caused MSVC to
rebuild the whole solution even on a small CMake change.
It's not neccessary anyway to set the cxx parameters to the cache
to take effect.
* I'm not sure if the workarround is still needed for MSVC 12+.
* Cleaning the CMake cache is recommended!
* ref #15671
(cherry picked from commit 0946fcf2aa35ebe0b8db07813315e3d6546b9d31)
*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.
Tested with:
- Windows 8 x64
- MySQL 5.5.30 win32
- OpenSSL 1.0.1c (32 bits)
- No PCH
- MinGW with GCC 4.7.0
TODO:
- Fix compile/link with PCH enabled
- Fix compile with WheatyExceptonionReport enabled (ignored for now)
- Fix compile of .rc files (ignored for now)
- Test with more platforms
** 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.