Commit Graph

90 Commits

Author SHA1 Message Date
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
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
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
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
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
Giacomo Pozzoni
fe489e2be1 Build: Enable and require c++17 (#23868)
* Build: Enable and require c++17

* Build: Raise Visual Studio version from 2017 15.2 to 2017 15.9

* Build: Raise GCC version from 6.3.0 to 7.1.0

* Reduce branch differences

* Fix build after latest merge

* Cleanup after latest merge

(cherry picked from commit 726d5e91b5)
2021-12-21 01:20:51 +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
629ec3a14d Build: Check -Wno-deprecated-copy existence using check_cxx_source_compiles instead of hardcoding clang version number 2021-10-01 11:19:39 +02:00
Shauren
4d69cc1c56 Core/Misc: GCC build and warning fixes 2020-05-21 22:15:58 +02:00
Shauren
7fdeb259ba Build system: Set -Wno-deprecated-copy only for clang 10 2020-04-26 01:48:41 +02:00
Shauren
7272508cb4 Core: Fix clang 10 warnings 2020-04-26 01:25:50 +02:00
Shauren
369b618d4f Build system: Support new in cmake 3.17 Ninja Multi-Config generator 2020-04-16 17:53:36 +02:00
Giacomo Pozzoni
77154e0c03 Require Visual Studio 2019 16.4 or greater (#24214)
* CI/AppVeyor: Add appveyor.yml file

* Build: Require Visual Studio 2019 16.4 or greater

* CI/AppVeyor: Upgrade to VS2019 image

* Update cmake error message

* CI/AppVeyor: Fix appveyor VS 2019 configuration

(cherry picked from commit 1df52da0b0)
2020-04-04 18:35:58 +02:00
Shauren
b0609757d3 Build/Misc: Removed -DDEBUG from clang compile options 2018-03-16 21:13:09 +01:00
Naios
db5d5a03be Build: Export a default interface which doesn't hide symbols in unix automatically 2017-12-20 04:04:28 +01:00
Naios
891960edbe Build: Require Visual Studio 2017 or greater
* See the deprecation notice at
  https://community.trinitycore.org/topic/13294-gcc-49-visual-studio-2015-end-of-life/

(cherry picked from commit b9b667f925)
2017-12-20 04:04:28 +01:00
Naios
edafb45b79 Build: Experimentally disable the /Zm workaround for MSVC
(cherry picked from commit 697b4dbef2)
2017-12-20 04:04:27 +01:00
Naios
ff35262a3a Build: Use interface targets for inheriting flags and definitions
* 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)
2017-12-20 04:04:27 +01:00
Naios
af7352118b Build: Set the minimum required compiler version to GCC 6.3
* This is the current GCC version of debian 9

(cherry picked from commit 5a9ccae3e1)
2017-12-20 04:04:27 +01:00
Shauren
a6d29d4058 Revert "Build/Clang: Suppress -Wexpansion-to-defined because of rapidjson dep"
This reverts commit 467e49c1fa.
2017-01-02 17:16:15 +01:00
DDuarte
467e49c1fa Build/Clang: Suppress -Wexpansion-to-defined because of rapidjson dep
https://travis-ci.org/TrinityCore/TrinityCore/builds/187588737#L985-L995
2016-12-30 02:15:40 +00:00
Shauren
650ab693a8 Buildsystem: Enforce Visual Studio 2015 Update 3 in CMake 2016-08-18 17:45:49 +02:00
Vincent-Michael
ede8f0ca0a Build/GCC: Enforce version 4.7.2 2016-05-13 18:06:00 +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
Shauren
3ebec1e2ce oops, pushed too soon (now with proper msbuild check) 2016-04-09 00:40:43 +02:00
Shauren
509a27fd51 Buildsystem: Improved logic for _BUILD_DIRECTIVE in msvc builds 2016-04-09 00:37:41 +02:00
Shauren
4a3a178d7f Buildsystem: Initial changes to support building with vs clang toolset 2016-04-05 22:43:41 +02:00
Naios
183f970055 Core/Build: Enable /bigobj for most MSVC builds.
* exluding 32 bit when dyynamic linking is disabled.
2016-03-24 01:28:56 +01: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
6eba8493e2 CMake: Disable incremental linking in msvc debug builds
* Requested by Shauren

(cherry picked from commit fbc23c0713)
2016-03-19 23:19:57 +01:00
Gacko
4eae523e32 Revert "Build/Clang: Suppress unused-local-typedefs warning."
This reverts commit 27bb569368 and 98e7ab4461.
2015-12-19 13:03:21 +01:00
Gacko
98e7ab4461 Build/Clang: Suppress unused-local-typedefs warning only for Clang 3.6.0+. 2015-11-15 18:54:32 +01:00
Gacko
27bb569368 Build/Clang: Suppress unused-local-typedefs warning. 2015-11-15 18:28:25 +01:00
Naios
0946fcf2aa Core/Build: Never overwrite the msvc cxx flags in the cache
* 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
2015-10-17 13:11:49 +02:00
Shauren
7732ad5153 Buildsystem/MSVC: Added missed change 2015-08-07 09:29:28 +02:00
Shauren
dcb1990e93 Buildsystem/MSVC: Enabled /Zc:throwingNew for Visual Studio 2015 builds
More info here: http://blogs.msdn.com/b/vcblog/archive/2015/08/06/new-in-vs-2015-zc-throwingnew.aspx

Closes #15230
2015-08-07 00:12:41 +02:00
Shauren
52127197ec Buildsystem/MSVC: Enabled /bigobj for all x64 build types 2015-07-24 19:21:31 +02:00
Shauren
a22e4e121a Core/Misc: Fixing warnings detected by Visual Studio 2015 compiler 2015-07-21 00:33:36 +02:00
jackpoz
6b30fbc238 Buildsystem/Clang: Suppress warning
Suppress -Wmismatched-tags warnings on clang to avoid false positive warnings reported using gcc 4.8

(cherry picked from commit 879af88d21)
2015-07-03 01:08:10 +01:00
Jared Jones
af99d0a597 CMake OS X: Fixed Debug Mode for Xcode
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
2015-05-10 01:46:23 -05:00
Shauren
b7f254db3d Buildsystem/MSVC: Disabled C4351: new behavior: elements of array 'x' will be default initialized for all builds, even when using WITH_WARNINGS 2015-01-06 14:25:23 +01:00
Duarte Duarte
cd0372ce7b CMake: Fix typo in MSVC_EXPECTED_VERSION
Thanks @Aridev

Closes #13820
2014-12-30 16:50:30 +00:00
Nayd
56a665ccf3 CMake: Require VS 2013 Update 3
Update 4 (includes 3) can be downloaded at http://www.microsoft.com/en-us/download/details.aspx?id=44921

Closes #13813
2014-12-29 20:55:53 +00:00
Nayd
702f774a49 CMake: Ignore MSVC warning C4351
new behavior: elements of array 'array' will be default initialized

"If you want the new behavior, which is likely, because the array was explicitly added to the constructor's member initialization list, use the warning pragma to disable the warning. The new behavior should be fine for most users."
2014-12-28 21:22:57 +00:00
Bernd Lörwald
06391e5e9d cmake: use CMAKE_BUILD_TYPE instead of CONFIGURATION as BUILD_DIRECTIVE 2014-10-29 23:59:28 +01:00
Shauren
48b7e0c60c Buildsystem/MSVC: Removed /SAFESEH linker option from x86 debug builds as it doesn't make sense in debug builds and interferes with Edit and Continue
Closes #13233
2014-09-28 12:03:34 +02:00
Jared P. Jones
11ecd851a1 Core/Misc: Silenced 500 OS X Warnings and removed deprecated finite() method.
*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.
2014-07-23 17:30:45 -05:00