aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorS.V <svranesevic@users.noreply.github.com>2017-03-31 23:10:18 +0200
committerGacko <gacko28@gmx.de>2017-04-05 22:02:34 +0200
commit886e9e839b304b7567dd655e4fa3afb2251c96ca (patch)
tree8d588662d03b90637fdd8ce6778361f7b69e02d5 /src
parent0b0d4c4011b1be37590104dae6a5b7a6ae378eef (diff)
Core/ScriptReloadMgr: Fixed scripts hot swapping on OS X (#19365)7.1.5/23420
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Scripting/ScriptReloadMgr.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/game/Scripting/ScriptReloadMgr.cpp b/src/server/game/Scripting/ScriptReloadMgr.cpp
index b26ca8e0540..246d66698d2 100644
--- a/src/server/game/Scripting/ScriptReloadMgr.cpp
+++ b/src/server/game/Scripting/ScriptReloadMgr.cpp
@@ -66,6 +66,9 @@ namespace fs = boost::filesystem;
#ifdef _WIN32
#include <windows.h>
#define HOTSWAP_PLATFORM_REQUIRES_CACHING
+#elif __APPLE__
+ #include <dlfcn.h>
+ #define HOTSWAP_PLATFORM_REQUIRES_CACHING
#else // Posix
#include <dlfcn.h>
// #define HOTSWAP_PLATFORM_REQUIRES_CACHING
@@ -86,11 +89,13 @@ static char const* GetSharedLibraryPrefix()
#endif
}
-// Returns "dll" on Windows and "so" on posix.
+// Returns "dll" on Windows, "dylib" on OS X, and "so" on posix.
static char const* GetSharedLibraryExtension()
{
#ifdef _WIN32
return "dll";
+#elif __APPLE__
+ return "dylib";
#else // Posix
return "so";
#endif
@@ -111,7 +116,7 @@ static fs::path GetDirectoryOfExecutable()
if (path.is_absolute())
return path.parent_path();
else
- return fs::absolute(path).parent_path();
+ return fs::canonical(fs::absolute(path)).parent_path();
}
class SharedLibraryUnloader