Add a WX_APPNAME_DATA_DIR hack for wxStandardPaths::GetDataDir().
Applications using wxStandardPaths::GetDataDir() to find their files under Unix can't be ran without being installed as they look for their data files under $prefix/share/appname. Make it possible to override this location by setting WX_APPNAME_DATA_DIR environment variable to allow running them without installation. Notice that this shouldn't present any security risk unless the application is SUID (which would be a very bad idea anyhow). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -405,6 +405,11 @@ All:
|
|||||||
- wxDateTime timezone functions now dynamic (no caching).
|
- wxDateTime timezone functions now dynamic (no caching).
|
||||||
- Added wxHttp::GetCookie and wxHttp::HasCookies (dodge).
|
- Added wxHttp::GetCookie and wxHttp::HasCookies (dodge).
|
||||||
|
|
||||||
|
Unix:
|
||||||
|
|
||||||
|
- Allow to use WX_APPNAME_DATA_DIR environment var to override the return value
|
||||||
|
of wxStandardPaths::GetDataDir().
|
||||||
|
|
||||||
All (GUI):
|
All (GUI):
|
||||||
|
|
||||||
- Added support for showing bitmaps in wxButton.
|
- Added support for showing bitmaps in wxButton.
|
||||||
|
@@ -103,11 +103,20 @@ public:
|
|||||||
/**
|
/**
|
||||||
Return the location of the applications global, i.e. not user-specific,
|
Return the location of the applications global, i.e. not user-specific,
|
||||||
data files.
|
data files.
|
||||||
|
|
||||||
Example return values:
|
Example return values:
|
||||||
- Unix: @c prefix/share/appinfo
|
- Unix: @c prefix/share/appinfo
|
||||||
- Windows: the directory where the executable file is located
|
- Windows: the directory where the executable file is located
|
||||||
- Mac: @c appinfo.app/Contents/SharedSupport bundle subdirectory
|
- Mac: @c appinfo.app/Contents/SharedSupport bundle subdirectory
|
||||||
|
|
||||||
|
Under Unix (only) it is possible to override the default value returned
|
||||||
|
from this function by setting the value of @c WX_APPNAME_DATA_DIR
|
||||||
|
environment variable to the directory to use (where @c APPNAME is the
|
||||||
|
upper-cased value of wxApp::GetAppName()). This is useful in order to
|
||||||
|
be able to run applications using this function without installing them
|
||||||
|
as you can simply set this environment variable to the source directory
|
||||||
|
location to allow the application to find its files there.
|
||||||
|
|
||||||
@see GetLocalDataDir()
|
@see GetLocalDataDir()
|
||||||
*/
|
*/
|
||||||
virtual wxString GetDataDir() const;
|
virtual wxString GetDataDir() const;
|
||||||
|
@@ -191,6 +191,16 @@ wxString wxStandardPaths::GetConfigDir() const
|
|||||||
|
|
||||||
wxString wxStandardPaths::GetDataDir() const
|
wxString wxStandardPaths::GetDataDir() const
|
||||||
{
|
{
|
||||||
|
// allow to override the location of the data directory by setting
|
||||||
|
// WX_APPNAME_DATA_DIR environment variable: this is very useful in
|
||||||
|
// practice for running well-written (and so using wxStandardPaths to find
|
||||||
|
// their files) wx applications without installing them
|
||||||
|
static const wxString
|
||||||
|
envOverride(getenv("WX_" + wxTheApp->GetAppName().Upper() + "_DATA_DIR"));
|
||||||
|
|
||||||
|
if ( !envOverride.empty() )
|
||||||
|
return envOverride;
|
||||||
|
|
||||||
return AppendAppInfo(GetInstallPrefix() + wxT("/share"));
|
return AppendAppInfo(GetInstallPrefix() + wxT("/share"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user