summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Mikhalicin <pmikhalicin@rutoken.ru>2022-07-04 12:29:09 +0300
committermkh199740 <mkh199740@mail.ru>2022-07-26 08:54:56 +0000
commit11a9a71dcf300305a3651dcd2dd80fb8ed3e4508 (patch)
tree25c156ccab448c1cc0c27b2fb8d4e5ae797fd301
parent68c62c52b2ce8c72c5acfffe81c788b3af608e4a (diff)
downloadqbs-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.cpp16
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)))
{
}