* 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.
* Prevents double deletion of MySQLConnection after errors
* The object stays valid after an error and will wait for a reconnect
* Also crash the server if 5 reconnects fail
* Corrects an issue where the server was crashed after one reconnect
because mysql_thread_id was invoked with an invalid handle
(cherry picked from commit 62815c6e1c0427e1d0229d02b1ba70449654cded)
* Corrects dirty usage of vectors with array indexes
* Removes _connectionCount which is now handled through the vector size
* Rename magic identifier "t" to "connection"
(cherry picked from commit 5ed018099418099e23921409ff96dc6175b97062)
* A PCH is still generated for every target which was passed to the macro
* Resolves naming conflicts when using the same PCH header from multiple projects
* Ref #15671
(cherry picked from commit a974574d6e810799298e82776ccd85be0ae6d4d5)
* Adds CMAKE_COMMAND and CMAKE_BINARY_DIR to revision_data.h
* Move the source and mysql exe path handling out of the DBUpdater.
* Make some Config methods const for correctness.
* Remove C & CXX flags from revision_data.h
(was unused and didn't capture all cxx vars)
* Reorder the link order to prevent `ld` from ignoring the file
* Ref #15671
* Each subdirectory contains it's own translation unit now
which is responsible for loading it's directory
* Improves merging & decoupling between 3.3.5 <-> 6.x
* Removes unused Battleground loader
* Ref #15671
* Current method causes issues under CentOS 6 and could possibly
lead to cutted buffer content when reading in textmode.
* Closes#16209
(cherry picked from commit ae1a5c6c2b82918850cb7b851e2f7dff33a40c57)
* Seems like this feature is stable enough to enable it by default
since the last missing bugs were fixed some months ago.
* The database updater is the preferred method to update the databases
as described in the wiki: http://collab.kpsn.org/display/tc/Databases+Installation