Commit Graph

28 Commits

Author SHA1 Message Date
Treeston
27b1930d97 Build: Add Clang version guard to CMake (PR #25324) 2020-08-24 17:44:38 +02:00
Giacomo Pozzoni
41d70a5905 Build/GCC: Raise required version to 8.3.0 (#25297)
Even when building with Clang, make sure to have libstdc++ >= 8
2020-08-21 13:51:29 +02:00
Shauren
042b1abfd7 Fix warnings related to Vector3::operator= and remove -Wno-deprecated-copy suppression 2020-07-13 18:35:13 +02:00
ipriver
a46d047f94 fixed indentation for cmake files 2020-06-24 14:42:02 +02:00
Giacomo Pozzoni
8c09b6e58b Cherry-pick some cmake commits (#24720)
* Build system: Support  new in cmake 3.17 Ninja Multi-Config generator

(cherry picked from commit 369b618d4f)

* Build system: Fixed PCH with MSVC & Ninja generator

(cherry picked from commit d669f46b6d)

* Core: Fix clang 10 warnings

(cherry picked from commit 7272508cb4)

# Conflicts:
#	src/common/Utilities/Util.h
#	src/server/bnetserver/REST/LoginRESTService.cpp
#	src/server/game/Entities/Object/Position.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Guilds/GuildFinderMgr.h
#	src/server/game/Movement/Spline/MoveSplineFlag.h
#	src/server/shared/Dynamic/LinkedList.h

* Build system: Set -Wno-deprecated-copy only for clang 10

(cherry picked from commit 7fdeb259ba)

* Core/Misc: GCC build and warning fixes

(cherry picked from commit 4d69cc1c56)

# Conflicts:
#	src/common/Utilities/Util.cpp
#	src/server/database/Database/MySQLConnection.cpp
#	src/server/game/Battlefield/Zones/BattlefieldTB.cpp
#	src/server/game/DataStores/M2Stores.cpp
#	src/server/game/DungeonFinding/LFGMgr.cpp
#	src/server/game/DungeonFinding/LFGPlayerData.cpp
#	src/server/game/Entities/GameObject/GameObject.cpp
#	src/server/game/Entities/Item/Item.cpp
#	src/server/game/Entities/Object/Updates/UpdateFields.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/RestMgr.cpp
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Handlers/PetHandler.cpp
#	src/server/game/Server/Packets/GuildPackets.h
#	src/server/game/Spells/Auras/SpellAuraEffects.cpp
#	src/server/game/Spells/Auras/SpellAuras.cpp
#	src/server/game/Spells/Spell.cpp
#	src/server/game/Spells/SpellInfo.cpp
#	src/server/game/Spells/SpellMgr.cpp
#	src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp
#	src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp
#	src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
#	src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
#	src/server/scripts/Northrend/zone_sholazar_basin.cpp
#	src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
#	src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
#	src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
#	src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp
#	src/tools/vmap4_extractor/gameobject_extract.cpp
#	src/tools/vmap4_extractor/model.cpp
#	src/tools/vmap4_extractor/vec3d.h

* Build system: Print found git version when warning about it being too old

(cherry picked from commit 1ae72db201)

* 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 161944b764)

# Conflicts:
#	dep/boost/CMakeLists.txt

* Remove some code that was already removed from 335 and then cherry-picked into master

Co-authored-by: Shauren <shauren.trinity@gmail.com>
2020-05-31 14:17:26 +02:00
daMaex
ce449f6b53 Core: build on aarch64 with gcc (#24216)
* build on aarch64 with gcc

* Core/aarch64: readability on preprocessor macro

* Core/aarch64: TC C++ codestyle adjustment
2020-03-01 20:16:57 +01:00
Giacomo Pozzoni
726d5e91b5 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
2020-02-08 18:14:09 +01: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
Naios
9d0400211d Build: Export a default interface which doesn't hide symbols in unix automatically
(cherry picked from commit db5d5a03be)
2017-12-21 23:31:11 +01:00
Naios
e60c1f84a7 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
2017-12-17 20:22:33 +01:00
Naios
5a9ccae3e1 Build: Set the minimum required compiler version to GCC 6.3
* This is the current GCC version of debian 9
2017-12-17 20:22:33 +01:00
Vincent-Michael
0ab6ecbdc6 Build/GCC: Enforce version 4.7.2
(cherry picked from commit ede8f0ca0a)
2016-05-14 18:40:22 +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
jackpoz
a3e56b0689 Core/Dependencies: Upgrade to jemalloc-3.5.1 2014-03-28 22:34:39 +01:00
Shauren
3affa3a824 Buildsystem/GCC: Enforce version 4.7.2 and enable c++11 compilation 2014-03-23 20:35:30 +01:00
click
ea9c6524dd Buildsystem/CMake: Revoke commit 7b49da48f9 - it creates unwanted results when used with PCh on *nix platforms. 2013-01-29 23:18:25 +01:00
click
7b49da48f9 Buildsystem/CMake: Change policy CMP0005 to NEW and corect some buildvariables accordingly
** 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
2013-01-29 15:53:21 +01:00
click
8ef48ecc99 Core/Buildsystem: Clean up compileflags when compiling with warnings fully enabled.
-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.
2012-11-27 00:43:38 +01:00
Spp
333b8e5159 Core/Build: Enable Clang PCH support and OS X specific features
Core: Fix warnings here and there
2012-11-09 13:13:45 +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
leak
4c9cfa6739 Core/Buildsystem: Resolved quoting problem that caused gcc to spam warnings. Patch by click.
--HG--
branch : trunk
2010-12-20 02:23:55 +01:00
click
62b853e8ed BuildSystem: Fix missing variable parameter encapsulation for _BUILD_DIRECTIVE (gcc/xcode)
--HG--
branch : trunk
2010-09-30 13:04:46 +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
f69c252f1d Buildsystem/Compilers: Adjust buildfiles slightly:
- Set SSE2 compile-flags only when used on 32-bit platforms (only used on x86 platforms, as x64 / Itanium has this as a standard)
- Clean up/merge some of the 64-bit/32-bit compiler options
- Clean up use of the PLATFORM variable (now sets PLATFORM 32 or PLATFORM 64, shaving off the CMAKE_SIZEOF_VOID_P test slightly)

--HG--
branch : trunk
2010-09-20 20:58:57 +02:00
click
58dafd94e2 BuildSystem/Platforms: Move platform-specific settings into respective directories, consistent with what is done with compilers.
BuildSystem/GCC: Add some additional parameters when using SFMT

--HG--
branch : trunk
2010-09-19 18:17:53 +02:00
click
3fa20f4cf3 Buildsystem: Make options load BEFORE platformchecks, so they are preloaded correctly
+ add some more output to make it easier to find possible issues with the new layout

--HG--
branch : trunk
2010-08-28 21:42:07 +02:00
click
dcaeceaf6b Buildsystem: Change over to a little more flexible method of using the CMake buildsystem (partially WIP) - REQUIRES RERUNNING CMAKE!
For finding out the "standard" parameters examine the cmake/options.cmake file and adjacent files for your platform/compiler.
For platform settings -> cmake/platform/*/settings.cmake
For compiler settings -> cmake/compiler/*/settings.cmake
Some more testing and changes IS required, but I don't have OSX/XCode to kill off the main issues

--HG--
branch : trunk
rename : cmake/FindPlatform.cmake => cmake/macros/CheckPlatform.cmake
rename : cmake/FindACE.cmake => cmake/macros/FindACE.cmake
rename : cmake/FindMySQL.cmake => cmake/macros/FindMySQL.cmake
rename : cmake/FindOpenSSL.cmake => cmake/macros/FindOpenSSL.cmake
rename : cmake/FindPCHSupport.cmake => cmake/macros/FindPCHSupport.cmake
rename : cmake/FindReadline.cmake => cmake/macros/FindReadline.cmake
rename : cmake/cmake_uninstall.cmake.in => cmake_uninstall.cmake.in
2010-08-28 18:49:17 +02:00