library installation base name and wxMac resources file base name

must be identical in order for the resource file to be found


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Gilles Depeyrot
2003-01-09 20:57:31 +00:00
parent 23f0f906a2
commit f346733b72
4 changed files with 35 additions and 15 deletions

6
configure vendored
View File

@@ -14733,7 +14733,7 @@ for ac_dir in $SEARCH_LIB /usr/lib;
GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lwine$mesa_link$xpm_link -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses" GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lwine$mesa_link$xpm_link -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses"
TOOLKIT=MSW TOOLKIT=MSW
GUIDIST=MSW_DIST GUIDIST=MSW_DIST
TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXWINE__" TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WINE__"
fi fi
if test "$wxUSE_MOTIF" = 1; then if test "$wxUSE_MOTIF" = 1; then
@@ -15911,8 +15911,8 @@ case "${host}" in
WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}" WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
if test "$wxUSE_MAC" = 1; then if test "$wxUSE_MAC" = 1; then
WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.r" WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.${WX_CURRENT}.r"
WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.rsrc" WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.${WX_CURRENT}.rsrc"
fi fi
;; ;;
esac esac

View File

@@ -2781,9 +2781,10 @@ case "${host}" in
dnl Under Mac OS X, we should build real frameworks instead of simple dnl Under Mac OS X, we should build real frameworks instead of simple
dnl dynamic shared libraries (in order to embed the resources) dnl dynamic shared libraries (in order to embed the resources)
if test "$wxUSE_MAC" = 1; then if test "$wxUSE_MAC" = 1; then
dnl the name of the resources file for wxMac dnl base name of the resource file for wxMac must be the same
WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.r" dnl as library installation base name (-install_name)
WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.rsrc" WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.${WX_CURRENT}.r"
WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.${WX_CURRENT}.rsrc"
fi fi
;; ;;
esac esac
@@ -2914,6 +2915,9 @@ if test "$wxUSE_SHARED" = "yes"; then
dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
SHARED_LD="\${top_srcdir}/distrib/mac/shared-ld-sh -undefined suppress -flat_namespace -o" SHARED_LD="\${top_srcdir}/distrib/mac/shared-ld-sh -undefined suppress -flat_namespace -o"
PIC_FLAG="-dynamic -fPIC" PIC_FLAG="-dynamic -fPIC"
dnl library installation base name and wxMac resources file base name
dnl must be identical in order for the resource file to be found at
dnl run time in src/mac/app.cpp
SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1}" SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1}"
SONAME_FLAGS_GL="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1_GL}" SONAME_FLAGS_GL="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1_GL}"
;; ;;

View File

@@ -790,6 +790,9 @@ void wxStAppResource::OpenSharedLibraryResource(const void *initBlock)
theModule = NSModuleForSymbol(theSymbol); theModule = NSModuleForSymbol(theSymbol);
theLibPath = NSLibraryNameForModule(theModule); theLibPath = NSLibraryNameForModule(theModule);
wxLogDebug( wxT("wxMac library installation name is '%s'"),
theLibPath );
// allocate copy to replace .dylib.* extension with .rsrc // allocate copy to replace .dylib.* extension with .rsrc
theResPath = strdup(theLibPath); theResPath = strdup(theLibPath);
if (theResPath != NULL) { if (theResPath != NULL) {
@@ -803,7 +806,8 @@ void wxStAppResource::OpenSharedLibraryResource(const void *initBlock)
// overwrite extension with ".rsrc" // overwrite extension with ".rsrc"
strcpy(theExt, ".rsrc"); strcpy(theExt, ".rsrc");
wxLogDebug( theResPath ); wxLogDebug( wxT("wxMac resources file name is '%s'"),
theResPath );
theErr = FSPathMakeRef((UInt8 *) theResPath, &theResRef, false); theErr = FSPathMakeRef((UInt8 *) theResPath, &theResRef, false);
if (theErr != noErr) { if (theErr != noErr) {
@@ -811,14 +815,18 @@ void wxStAppResource::OpenSharedLibraryResource(const void *initBlock)
theErr = FSPathMakeRef((UInt8 *) theName, &theResRef, false); theErr = FSPathMakeRef((UInt8 *) theName, &theResRef, false);
} }
// free duplicated resource file path
free(theResPath);
// open the resource file // open the resource file
if (theErr == noErr) { if (theErr == noErr) {
theErr = FSOpenResourceFile( &theResRef, 0, NULL, fsRdPerm, theErr = FSOpenResourceFile( &theResRef, 0, NULL, fsRdPerm,
&gSharedLibraryResource); &gSharedLibraryResource);
} }
if (theErr != noErr) {
wxLogDebug( wxT("unable to open wxMac resource file '%s'"),
theResPath );
}
// free duplicated resource file path
free(theResPath);
} }
} }
#endif /* __DARWIN__ */ #endif /* __DARWIN__ */

View File

@@ -790,6 +790,9 @@ void wxStAppResource::OpenSharedLibraryResource(const void *initBlock)
theModule = NSModuleForSymbol(theSymbol); theModule = NSModuleForSymbol(theSymbol);
theLibPath = NSLibraryNameForModule(theModule); theLibPath = NSLibraryNameForModule(theModule);
wxLogDebug( wxT("wxMac library installation name is '%s'"),
theLibPath );
// allocate copy to replace .dylib.* extension with .rsrc // allocate copy to replace .dylib.* extension with .rsrc
theResPath = strdup(theLibPath); theResPath = strdup(theLibPath);
if (theResPath != NULL) { if (theResPath != NULL) {
@@ -803,7 +806,8 @@ void wxStAppResource::OpenSharedLibraryResource(const void *initBlock)
// overwrite extension with ".rsrc" // overwrite extension with ".rsrc"
strcpy(theExt, ".rsrc"); strcpy(theExt, ".rsrc");
wxLogDebug( theResPath ); wxLogDebug( wxT("wxMac resources file name is '%s'"),
theResPath );
theErr = FSPathMakeRef((UInt8 *) theResPath, &theResRef, false); theErr = FSPathMakeRef((UInt8 *) theResPath, &theResRef, false);
if (theErr != noErr) { if (theErr != noErr) {
@@ -811,14 +815,18 @@ void wxStAppResource::OpenSharedLibraryResource(const void *initBlock)
theErr = FSPathMakeRef((UInt8 *) theName, &theResRef, false); theErr = FSPathMakeRef((UInt8 *) theName, &theResRef, false);
} }
// free duplicated resource file path
free(theResPath);
// open the resource file // open the resource file
if (theErr == noErr) { if (theErr == noErr) {
theErr = FSOpenResourceFile( &theResRef, 0, NULL, fsRdPerm, theErr = FSOpenResourceFile( &theResRef, 0, NULL, fsRdPerm,
&gSharedLibraryResource); &gSharedLibraryResource);
} }
if (theErr != noErr) {
wxLogDebug( wxT("unable to open wxMac resource file '%s'"),
theResPath );
}
// free duplicated resource file path
free(theResPath);
} }
} }
#endif /* __DARWIN__ */ #endif /* __DARWIN__ */