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:
@@ -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"));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user