38 Commits

Author SHA1 Message Date
Shauren
1c487de3b9 Build: Partial revert of 2b38f40988 2025-10-11 14:09:19 +02:00
Shauren
2b38f40988 Build: Enable debug format flag -ggdb3 instead of -g by default for debug builds 2025-10-11 12:47:42 +02:00
Shauren
d93002f9a9 Build: Disable maybe-uninitialized warning for GCC that incorrectly triggers with std::optional 2024-07-20 12:08:23 +02:00
Shauren
77fe2745fe Build: CMake cleanup
* Migrate all add_definitions to target_compile_definitions
* Remove -D from preprocessor definitions added by target_compile_definitions (unneccessary, cmake strips it anyway)
* Fixed NO_BUFFERPOOL not being set on g3d if jemalloc is used
* Moved library/compiler specific compile flag settings spread all over various CMakeLists to their related library/compiler file
* Remove ancient manual link flag settings for worldserver
2024-07-15 15:24:35 +02:00
Shauren
078bc6fe3f Build: Unify setting _BUILD_DIRECTIVE preprocessor macro for all compilers 2024-06-15 13:34:44 +02:00
Shauren
16853af7c8 Build: Update required GCC version to 11.1 2024-04-10 13:52:06 +02:00
Shauren
7e51d17a0a Build: Improve ARM target detection in cmake (needed by MSVC) 2024-02-17 01:13:36 +01:00
Shauren
0aa644287c Build/GCC: Disable useless warning 2023-07-30 00:23:31 +02:00
Shauren
0a1b40241a Build: Update required compilers to current debian stable and VS 2022
GCC: 10
Clang: 11
MSVC: 2022
2023-01-01 00:26:53 +01:00
Treeston
cfcfe71097 Build: Add Clang version guard to CMake (PR #25324)
(cherry picked from commit 27b1930d97)
2022-02-04 00:27:13 +01:00
Giacomo Pozzoni
f8b6137a4c Build/GCC: Raise required version to 8.3.0 (#25297)
Even when building with Clang, make sure to have libstdc++ >= 8

(cherry picked from commit 41d70a5905)
2022-02-04 00:27:11 +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
ipriver
bde36062b7 fixed indentation for cmake files
(cherry picked from commit a46d047f94)
2022-01-06 23:40:39 +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
4d69cc1c56 Core/Misc: GCC build and warning fixes 2020-05-21 22:15:58 +02:00
Shauren
369b618d4f Build system: Support new in cmake 3.17 Ninja Multi-Config generator 2020-04-16 17:53:36 +02: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
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
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
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
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