diff options
author | Petr Mikhalicin <pmikhalicin@rutoken.ru> | 2022-07-04 12:29:09 +0300 |
---|---|---|
committer | mkh199740 <mkh199740@mail.ru> | 2022-07-26 08:54:56 +0000 |
commit | 11a9a71dcf300305a3651dcd2dd80fb8ed3e4508 (patch) | |
tree | 25c156ccab448c1cc0c27b2fb8d4e5ae797fd301 | |
parent | 68c62c52b2ce8c72c5acfffe81c788b3af608e4a (diff) | |
download | qbs-11a9a71dcf300305a3651dcd2dd80fb8ed3e4508.tar.gz |
Allow to get qbs settings dir from env var
This feature will be useful for using qbs conan package at virtual
environment
Change-Id: I0d903d9696edcc9b339226deb2cb38de89e319f5
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/lib/corelib/tools/settingscreator.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/corelib/tools/settingscreator.cpp b/src/lib/corelib/tools/settingscreator.cpp index f94ae6f10..2cef0e5ce 100644 --- a/src/lib/corelib/tools/settingscreator.cpp +++ b/src/lib/corelib/tools/settingscreator.cpp @@ -53,14 +53,26 @@ namespace qbs { namespace Internal { +namespace { +QString getBaseDir(QString baseDir) { + if (!baseDir.isEmpty()) + return baseDir; + + const char key[] = "QBS_SETTINGS_DIR"; + if (qEnvironmentVariableIsSet(key)) + return QLatin1String(qgetenv(key)); + + return {}; +} +} // namespace + static QSettings::Format format() { return HostOsInfo::isWindowsHost() ? QSettings::IniFormat : QSettings::NativeFormat; } - SettingsCreator::SettingsCreator(QString baseDir) - : m_settingsBaseDir(std::move(baseDir)) + : m_settingsBaseDir(getBaseDir(std::move(baseDir))) , m_qbsVersion(Version::fromString(QLatin1String(QBS_VERSION))) { } |