Relocate appData fgfsrc loading prior to init of fg-root, so we can specify --fg-root that way.
This commit is contained in:
parent
e1be74902a
commit
e50ff87300
3 changed files with 31 additions and 29 deletions
|
@ -514,26 +514,13 @@ static SGPath platformDefaultDataPath()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Read in configuration (file and command line)
|
// Read in configuration (file and command line)
|
||||||
bool fgInitConfig ( int argc, char **argv ) {
|
bool fgInitConfig ( int argc, char **argv )
|
||||||
|
{
|
||||||
flightgear::Options::sharedInstance()->init(argc, argv);
|
|
||||||
|
|
||||||
// Read global preferences from $FG_ROOT/preferences.xml
|
|
||||||
SG_LOG(SG_INPUT, SG_INFO, "Reading global preferences");
|
|
||||||
fgLoadProps("preferences.xml", globals->get_props());
|
|
||||||
SG_LOG(SG_INPUT, SG_INFO, "Finished Reading global preferences");
|
|
||||||
|
|
||||||
// Detect the required language as early as possible
|
|
||||||
if ( !fgDetectLanguage() ) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
SGPropertyNode autosave;
|
|
||||||
SGPath dataPath = platformDefaultDataPath();
|
SGPath dataPath = platformDefaultDataPath();
|
||||||
|
|
||||||
const char *fg_home = getenv("FG_HOME");
|
const char *fg_home = getenv("FG_HOME");
|
||||||
if (fg_home)
|
if (fg_home)
|
||||||
dataPath = fg_home;
|
dataPath = fg_home;
|
||||||
|
|
||||||
simgear::Dir exportDir(simgear::Dir(dataPath).file("Export"));
|
simgear::Dir exportDir(simgear::Dir(dataPath).file("Export"));
|
||||||
if (!exportDir.exists()) {
|
if (!exportDir.exists()) {
|
||||||
|
@ -548,6 +535,21 @@ bool fgInitConfig ( int argc, char **argv ) {
|
||||||
home->setStringValue(dataPath.c_str());
|
home->setStringValue(dataPath.c_str());
|
||||||
home->setAttribute(SGPropertyNode::WRITE, false);
|
home->setAttribute(SGPropertyNode::WRITE, false);
|
||||||
|
|
||||||
|
flightgear::Options::sharedInstance()->init(argc, argv, dataPath);
|
||||||
|
|
||||||
|
// Read global preferences from $FG_ROOT/preferences.xml
|
||||||
|
SG_LOG(SG_INPUT, SG_INFO, "Reading global preferences");
|
||||||
|
fgLoadProps("preferences.xml", globals->get_props());
|
||||||
|
SG_LOG(SG_INPUT, SG_INFO, "Finished Reading global preferences");
|
||||||
|
|
||||||
|
// Detect the required language as early as possible
|
||||||
|
if ( !fgDetectLanguage() ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
SGPropertyNode autosave;
|
||||||
|
|
||||||
|
|
||||||
SGPath autosaveFile = simgear::Dir(dataPath).file("autosave.xml");
|
SGPath autosaveFile = simgear::Dir(dataPath).file("autosave.xml");
|
||||||
if (autosaveFile.exists()) {
|
if (autosaveFile.exists()) {
|
||||||
SG_LOG(SG_INPUT, SG_INFO, "Reading user settings from " << autosaveFile.str());
|
SG_LOG(SG_INPUT, SG_INFO, "Reading user settings from " << autosaveFile.str());
|
||||||
|
@ -559,13 +561,6 @@ bool fgInitConfig ( int argc, char **argv ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// check for a config file in app data
|
|
||||||
SGPath appDataConfig(dataPath);
|
|
||||||
appDataConfig.append("fgfsrc");
|
|
||||||
if (appDataConfig.exists()) {
|
|
||||||
flightgear::Options::sharedInstance()->readConfig(appDataConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scan user config files and command line for a specified aircraft.
|
// Scan user config files and command line for a specified aircraft.
|
||||||
flightgear::Options::sharedInstance()->initAircraft();
|
flightgear::Options::sharedInstance()->initAircraft();
|
||||||
|
|
||||||
|
|
|
@ -1671,7 +1671,7 @@ Options::~Options()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void Options::init(int argc, char **argv)
|
void Options::init(int argc, char **argv, const SGPath& appDataPath)
|
||||||
{
|
{
|
||||||
fgSetDefaults();
|
fgSetDefaults();
|
||||||
|
|
||||||
|
@ -1717,6 +1717,13 @@ void Options::init(int argc, char **argv)
|
||||||
readConfig(config);
|
readConfig(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check for a config file in app data
|
||||||
|
SGPath appDataConfig(appDataPath);
|
||||||
|
appDataConfig.append("fgfsrc");
|
||||||
|
if (appDataConfig.exists()) {
|
||||||
|
readConfig(appDataConfig);
|
||||||
|
}
|
||||||
|
|
||||||
// setup FG_ROOT
|
// setup FG_ROOT
|
||||||
setupRoot();
|
setupRoot();
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* pass command line arguments, read default config files
|
* pass command line arguments, read default config files
|
||||||
*/
|
*/
|
||||||
void init(int argc, char* argv[]);
|
void init(int argc, char* argv[], const SGPath& appDataPath);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* parse a config file (eg, .fgfsrc)
|
* parse a config file (eg, .fgfsrc)
|
||||||
|
|
Loading…
Reference in a new issue