Core/ScriptReloadMgr: Fixed scripts hot swapping on OS X (#19365)

This commit is contained in:
S.V
2017-03-31 23:10:18 +02:00
committed by Shauren
parent b9d456fad1
commit f3d795d8dd
2 changed files with 10 additions and 3 deletions

View File

@@ -67,6 +67,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
@@ -87,11 +90,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
@@ -112,7 +117,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