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:
Vadim Zeitlin
2009-10-08 22:38:03 +00:00
parent 4f83b9fc54
commit 306a5d9515
3 changed files with 24 additions and 0 deletions

View File

@@ -191,6 +191,16 @@ wxString wxStandardPaths::GetConfigDir() 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"));
}