* Fixes MSVC linking errors after the recent changes:
"class boost::none_t const & const boost::`anonymous namespace'
::none" (?none@?A0x518851d0@boost@@3AEBVnone_t@2@EB)
already defined in scripts_commands.lib...
* Sets the required version of boost on windows to 1.66
according to the wiki.
(cherrypicked from 3da60f84000bd7ffa5a1516839b84cdee4764448)
* Required for handling flags inherited by linked projects
correctly in the corresponding precompiled header.
* Reduces the maintenance effort for precompiled headers
(cherry picked from commit 92f96fc10e70b2d62cce832837477d958e2afbe3)
* 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 e60c1f84a7e13577a82046b02b214f9466d20a7c)
* This is below current package version of
debian stretch stable CMake on which we
orientate at.
* Required for CMake target features
(cherry picked from commit e5e7919b64f8b6dc1c872871175ae1e30e25c555)
* This is a platform independent config which is
supported in many editors to set the charset and intendation
automatically on a per project basis.
* The latin1 charset is a workaround for the MSVC
editorconfig support which stores utf-8 with bom
instead of none.
(cherry picked from commit 850fbbd6a939a7a577bdd8fe840b0baa66b1ec99)
* Delay unloading of shared libraries to the next update tick
to prevent crashes in the destructor of the last referenced
script instance.
* Closes#17557
(cherry picked from commit 445746c402485fcac60c02842d0cb5e0dd605e5c)
* Fixes an assertion introduced in commit 1ad73212dca0cf.
* Use itr = std::unordered_map<...>::erase for updating the iterator.
(cherry picked from commit d9755c637c39e600f145f5ecb7ff0ccf3724b1ad)
* Immediate deletion caused issues with the SpellEvent,
so we delete it at one of the next update ticks now.
* Only affects the unforced cancellation of events.
* Ref #16675
(cherry picked from commit 1ad73212dca0cf8a829d15ffdbcc4cd611e64d4e)
* EventProcessor::KillAllEvents(force = false) should only be used
by the EventProcessor.
(cherry picked from commit d68316fcd2fc71343edfbd387249b75bd6e8a90f)
* Add platform strings for intel and apple
* Remove usage of underscore uppercase identifiers because
those are reserved for the compiler.
* Requested by Aokromes
* There are not that much issues as expected which are related to the linking
model, so this isn't needed for every issue that is created anymore.
This reverts commit b91bed017bb59e1783330f61a48a8d2b3af857cf.
* Fixes issues when starting the worldserver not in the bin directory
or the CMAKE_INSTALL_PREFIX directory using the -c option.
(cherry picked from commit 86b0fcf67aadc0d313253befb0590d00efd085bc)
* Disables the shared library caching on platforms completely which
never block files on usage (like linux).
(cherry picked from commit 081720b5dd5a80aa77181712d85d309d64d3ec03)
* I wasn't able to work arround a path which contains spaces,
since it seems like a CMake specific issue.
* Closes#16947
(cherry picked from commit 42eeb28a8b9c1f3ae2d667e4238e956a4a95bd6c)
* Increases the build time because dependent projects can build
without waiting for the game project.
(cherry picked from commit ff8a54ab928c00968266d0b1a574f81536152758)
* This fixes the source change detection in linux.
* Also simplifies the detection of observed modules
* Fixes the script rebuilding on linux
* Escape windows paths to (maybe) fix paths with spaces (#16947)
(cherry picked from commit 10bc41c91e96b51aac4d811d20b535fff9562edd)
* Broken since 9cc97f226d
* There is still a crash when using lazy unloading which I
will fix in a later commit (this commit should fix at least
the static build and normal usage of the dynamic build).
* Closes#16948
(cherry picked from commit 410cf0dd05e2765cf7806a9165f976a2bcc199d2)
* Finally this commit enables dynamic script hotswapping
and finished the PR #15671.
* Split the storage layout to use optimized storages
for database bound and unbound scripts.
* Add several unload workers to reload scripts correctly
-> Requires further investigation.
* Fixes memory leaks in ScriptMgr when dropping invalid scripts.
* Fixes VehicleScripts
* Makes OutdoorPvP scripts reloadable
* Makes InstanceMapScripts reloadable
* Makes CommandScripts reloadable
* is responsible for registering plain modules.
* requires compilation with the `WITH_DYNAMIC_LINKING` flag.
* requires further support of the ScriptMgr.
* 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.
* For easier usage, the processes output it routed
correctly to the TC logger line by line now.
* Add support for asynchronous process execution
and process termination.
* Uses system API's which reduces the overhead
instead of checking periodically for changes.
* Will be used in the hotswap system to reload
shared libraries on changes.
* Set the default option to hierarchical
* Add a new "hierarchical-folders" option which enables folders inside IDE's.
(cherry picked from commit bf773ccc417b47d01502c8151cea6188e33e16aa)
* to make use of cmakes inherited link dependencies which
imports all include directories/ definitions from the link library
(cherry picked from commit 1a572d242593124f986d3ed08710b96a142a6763)
* Fixes issues when building shared libraries
(prevents gcc and clang from providing several instance)
* Also instantiate the database worker pools in DatabaseEnv.cpp now.