X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1948bb3274f2d39649c63b88f0e8781d0fc9b693..34dceb471562e2bf2cc85c4792cde3faf555af40:/src/common/dynlib.cpp diff --git a/src/common/dynlib.cpp b/src/common/dynlib.cpp index 2d3ce5dfec..989138706e 100644 --- a/src/common/dynlib.cpp +++ b/src/common/dynlib.cpp @@ -39,6 +39,8 @@ #include "wx/log.h" #include "wx/utils.h" #include "wx/filename.h" // for SplitPath() +#include "wx/app.h" +#include "wx/apptrait.h" #if defined(__WXMAC__) #include "wx/mac/private.h" @@ -389,17 +391,39 @@ void *wxDynamicLibrary::GetSymbol(const wxString &name, bool *success) const /*static*/ -wxString wxDynamicLibrary::CanonicalizeName(const wxString& name, - wxDynamicLibraryCategory cat) +wxString +wxDynamicLibrary::CanonicalizeName(const wxString& name, + wxDynamicLibraryCategory +#ifdef __UNIX__ + cat +#else // !__UNIX__ + WXUNUSED(cat) +#endif // __UNIX__/!__UNIX__ + ) { + wxString nameCanonic; + + // under Unix the library names usualyl start with "lib" prefix, add it #ifdef __UNIX__ - if ( cat == wxDL_MODULE ) - return name + GetDllExt(); - else - return wxString(_T("lib")) + name + GetDllExt(); -#else - return name + GetDllExt(); -#endif + switch ( cat ) + { + default: + wxFAIL_MSG( _T("unknown wxDynamicLibraryCategory value") ); + // fall through + + case wxDL_MODULE: + // don't do anything for modules, their names are arbitrary + break; + + case wxDL_LIBRARY: + // library names should start with "lib" under Unix + nameCanonic = _T("lib"); + break; + } +#endif // __UNIX__ + + nameCanonic << name << GetDllExt(); + return nameCanonic; } /*static*/ @@ -409,29 +433,11 @@ wxString wxDynamicLibrary::CanonicalizePluginName(const wxString& name, wxString suffix; if ( cat == wxDL_PLUGIN_GUI ) { - suffix = wxString::FromAscii( -#if defined(__WXMSW__) - "msw" -#elif defined(__WXGTK__) - "gtk" -#elif defined(__WXMGL__) - "mgl" -#elif defined(__WXMOTIF__) - "motif" -#elif defined(__WXOS2__) - "pm" -#elif defined(__WXX11__) - "x11" -#elif defined(__WXMAC__) - "mac" -#elif defined(__WXCOCOA__) - "cocoa" -#endif - ); - -#ifdef __WXUNIVERSAL__ - suffix << _T("univ"); -#endif + wxAppTraits *traits = wxAppConsole::GetInstance() ? + wxAppConsole::GetInstance()->GetTraits() : NULL; + wxASSERT_MSG( traits, + _("can't query for GUI plugins name in console applications") ); + suffix = traits->GetToolkitInfo().shortName; } #if wxUSE_UNICODE suffix << _T('u'); @@ -456,6 +462,7 @@ wxString wxDynamicLibrary::CanonicalizePluginName(const wxString& name, #define wxDLLVER(x,y,z) #x #y #z #endif #endif + suffix << wxString::FromAscii(wxDLLVER(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER)); #undef wxDLLVER