From f98f02beb92fef1f0961ac1408d730e23443aa5e Mon Sep 17 00:00:00 2001 From: VladimirMangos Date: Sun, 29 Nov 2009 16:04:38 +0300 Subject: [PATCH] [8888] Use ACE for access to script lib * This allow have more portable code and resolve some related portability problems. * Also make default script library name lowcase at Windows in same way as used for Unix case. Thanks to XTZGZoReX for Unix side testing :) --- src/framework/Platform/Define.h | 23 +++++++++++------------ src/game/ScriptCalls.cpp | 2 +- src/shared/revision_nr.h | 2 +- win/VC100/script.vcxproj | 32 ++++++++++++++++---------------- win/VC80/script.vcproj | 32 ++++++++++++++++---------------- win/VC90/script.vcproj | 32 ++++++++++++++++---------------- 6 files changed, 61 insertions(+), 62 deletions(-) diff --git a/src/framework/Platform/Define.h b/src/framework/Platform/Define.h index 83184936982..769765bdb5c 100644 --- a/src/framework/Platform/Define.h +++ b/src/framework/Platform/Define.h @@ -22,6 +22,8 @@ #include #include +#include +#include #include #include "Platform/CompilerDefs.h" @@ -37,22 +39,21 @@ # endif //ACE_BYTE_ORDER #endif //MANGOS_ENDIAN +typedef ACE_SHLIB_HANDLE MANGOS_LIBRARY_HANDLE; + +#define MANGOS_SCRIPT_NAME "mangosscript" +#define MANGOS_SCRIPT_SUFFIX ACE_DLL_SUFFIX +#define MANGOS_SCRIPT_PREFIX ACE_DLL_PREFIX +#define MANGOS_LOAD_LIBRARY(libname) ACE_OS::dlopen(libname) +#define MANGOS_CLOSE_LIBRARY(hlib) ACE_OS::dlclose(hlib) +#define MANGOS_GET_PROC_ADDR(hlib,name) ACE_OS::dlsym(hlib,name) + #if PLATFORM == PLATFORM_WINDOWS # define MANGOS_EXPORT __declspec(dllexport) -# define MANGOS_LIBRARY_HANDLE HMODULE -# define MANGOS_LOAD_LIBRARY(a) LoadLibrary(a) -# define MANGOS_CLOSE_LIBRARY FreeLibrary -# define MANGOS_GET_PROC_ADDR GetProcAddress # define MANGOS_IMPORT __cdecl -# define MANGOS_SCRIPT_EXT ".dll" -# define MANGOS_SCRIPT_NAME "MaNGOSScript" # define MANGOS_PATH_MAX MAX_PATH #else //PLATFORM != PLATFORM_WINDOWS -# define MANGOS_LIBRARY_HANDLE void* # define MANGOS_EXPORT export -# define MANGOS_LOAD_LIBRARY(a) dlopen(a,RTLD_NOW) -# define MANGOS_CLOSE_LIBRARY dlclose -# define MANGOS_GET_PROC_ADDR dlsym # if defined(__APPLE_CC__) && defined(BIG_ENDIAN) # define MANGOS_IMPORT __attribute__ ((longcall)) # elif defined(__x86_64__) @@ -60,8 +61,6 @@ # else # define MANGOS_IMPORT __attribute__ ((cdecl)) # endif //__APPLE_CC__ && BIG_ENDIAN -# define MANGOS_SCRIPT_EXT ".so" -# define MANGOS_SCRIPT_NAME "libmangosscript" # define MANGOS_PATH_MAX PATH_MAX #endif //PLATFORM diff --git a/src/game/ScriptCalls.cpp b/src/game/ScriptCalls.cpp index 99435b34e25..7998cf493d1 100644 --- a/src/game/ScriptCalls.cpp +++ b/src/game/ScriptCalls.cpp @@ -43,7 +43,7 @@ bool LoadScriptingModule(char const* libName) ScriptsSet testScript=new _ScriptSet; std::string name = strlen(libName) ? libName : MANGOS_SCRIPT_NAME; - name += MANGOS_SCRIPT_EXT; + name = MANGOS_SCRIPT_PREFIX + name + MANGOS_SCRIPT_SUFFIX; testScript->hScriptsLib=MANGOS_LOAD_LIBRARY(name.c_str()); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index f6437d9e7ac..cf95d2fcd2e 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8887" + #define REVISION_NR "8888" #endif // __REVISION_NR_H__ diff --git a/win/VC100/script.vcxproj b/win/VC100/script.vcxproj index 13ff773cd98..cd0a48fae0d 100644 --- a/win/VC100/script.vcxproj +++ b/win/VC100/script.vcxproj @@ -91,32 +91,32 @@ <_ProjectFileVersion>10.0.20506.1 ..\..\bin\$(Platform)_$(Configuration)\ .\script__$(Platform)_$(Configuration)\ - MaNGOSScript + mangosscript .dll true ..\..\bin\$(Platform)_$(Configuration)\ .\script__$(Platform)_$(Configuration)\ - MaNGOSScript + mangosscript .dll false ..\..\bin\$(Platform)_$(Configuration)\ .\script__$(Platform)_$(Configuration)\ - MaNGOSScript + mangosscript .dll false ..\..\bin\$(Platform)_$(Configuration)\ .\script__$(Platform)_$(Configuration)\ - MaNGOSScript + mangosscript .dll false ..\..\bin\$(Platform)_$(Configuration)\ .\script__$(Platform)_$(Configuration)\ - MaNGOSScript + mangosscript .dll false ..\..\bin\$(Platform)_$(Configuration)\ .\script__$(Platform)_$(Configuration)\ - MaNGOSScript + mangosscript .dll false AllRules.ruleset @@ -157,12 +157,12 @@ mangosd.lib;zlib.lib;libmySQL.lib;libeay32.lib;ws2_32.lib;winmm.lib;odbc32.lib;odbccp32.lib;aced.lib;%(AdditionalDependencies) .\mangosd__$(Platform)_$(Configuration);.\zlib__$(Platform)_$(Configuration);..\..\dep\lib\$(Platform)_$(Configuration);.\$(OutDir);%(AdditionalLibraryDirectories) true - $(OutDir)MaNGOSScript.pdb + $(OutDir)mangosscript.pdb Windows false - $(IntDir)MaNGOSScript.lib + $(IntDir)mangosscript.lib MachineX86 @@ -188,12 +188,12 @@ mangosd.lib;zlib.lib;libmySQL.lib;libeay32.lib;ws2_32.lib;winmm.lib;odbc32.lib;odbccp32.lib;aced.lib;%(AdditionalDependencies) .\mangosd__$(Platform)_$(Configuration);.\zlib__$(Platform)_$(Configuration);..\..\dep\lib\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) true - $(OutDir)MaNGOSScript.pdb + $(OutDir)mangosscript.pdb Windows false - $(IntDir)MaNGOSScript.lib + $(IntDir)mangosscript.lib MachineX64 @@ -220,7 +220,7 @@ false - $(IntDir)MaNGOSScript.lib + $(IntDir)mangosscript.lib MachineX86 @@ -250,7 +250,7 @@ false - $(IntDir)MaNGOSScript.lib + $(IntDir)mangosscript.lib MachineX64 @@ -273,12 +273,12 @@ mangosd.lib;zlib.lib;libmySQL.lib;libeay32.lib;ws2_32.lib;winmm.lib;odbc32.lib;odbccp32.lib;aced.lib;%(AdditionalDependencies) .\mangosd__$(Platform)_$(Configuration);.\zlib__$(Platform)_$(Configuration);..\..\dep\lib\$(Platform)_debug;%(AdditionalLibraryDirectories) true - $(OutDir)MaNGOSScript.pdb + $(OutDir)mangosscript.pdb Windows false - $(IntDir)MaNGOSScript.lib + $(IntDir)mangosscript.lib MachineX86 @@ -304,12 +304,12 @@ mangosd.lib;zlib.lib;libmySQL.lib;libeay32.lib;ws2_32.lib;winmm.lib;odbc32.lib;odbccp32.lib;aced.lib;%(AdditionalDependencies) .\mangosd__$(Platform)_$(Configuration);.\zlib__$(Platform)_$(Configuration);..\..\dep\lib\$(Platform)_debug;%(AdditionalLibraryDirectories) true - $(OutDir)MaNGOSScript.pdb + $(OutDir)mangosscript.pdb Windows false - $(IntDir)MaNGOSScript.lib + $(IntDir)mangosscript.lib MachineX64 diff --git a/win/VC80/script.vcproj b/win/VC80/script.vcproj index fe71c05fdbb..37ae2ce5a80 100644 --- a/win/VC80/script.vcproj +++ b/win/VC80/script.vcproj @@ -65,13 +65,13 @@