aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/qbs-setup-qt
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2014-02-21 11:36:02 +0100
committerChristian Kandeler <christian.kandeler@digia.com>2014-02-21 12:04:25 +0100
commitbab99ac39ad9de7f1c244006ccfd49852941ac26 (patch)
treeebc89a823692e632cf775d1b01edb4ff307e851a /src/app/qbs-setup-qt
parentee7eb1f45529a16a4337c33fac82b205406ca1a0 (diff)
Allow the user to specify a custom place for settings.
Task-number: QBS-509 Change-Id: I4ad32c648121068880d652e3ba39d4eea59dfbc3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/app/qbs-setup-qt')
-rw-r--r--src/app/qbs-setup-qt/commandlineparser.cpp12
-rw-r--r--src/app/qbs-setup-qt/commandlineparser.h5
-rw-r--r--src/app/qbs-setup-qt/main.cpp2
3 files changed, 12 insertions, 7 deletions
diff --git a/src/app/qbs-setup-qt/commandlineparser.cpp b/src/app/qbs-setup-qt/commandlineparser.cpp
index d5811d1c4..a040b5ca4 100644
--- a/src/app/qbs-setup-qt/commandlineparser.cpp
+++ b/src/app/qbs-setup-qt/commandlineparser.cpp
@@ -38,6 +38,7 @@ using qbs::Internal::Tr;
static QString helpOptionShort() { return QLatin1String("-h"); }
static QString helpOptionLong() { return QLatin1String("--help"); }
static QString detectOption() { return QLatin1String("--detect"); }
+static QString settingsDirOption() { return QLatin1String("--settings-dir"); }
void CommandLineParser::parse(const QStringList &commandLine)
{
@@ -48,6 +49,7 @@ void CommandLineParser::parse(const QStringList &commandLine)
m_autoDetectionMode = false;
m_qmakePath.clear();
m_profileName.clear();
+ m_settingsDir.clear();
if (m_commandLine.isEmpty())
throwError(Tr::tr("No command-line arguments provided."));
@@ -61,6 +63,8 @@ void CommandLineParser::parse(const QStringList &commandLine)
m_helpRequested = true;
else if (arg == detectOption())
m_autoDetectionMode = true;
+ else if (arg == settingsDirOption())
+ assignOptionArgument(settingsDirOption(), m_settingsDir);
}
if (m_helpRequested || m_autoDetectionMode) {
@@ -93,10 +97,10 @@ QString CommandLineParser::usageString() const
{
QString s = Tr::tr("This tool creates qbs profiles from Qt versions.\n");
s += Tr::tr("Usage:\n");
- s += Tr::tr(" %1 %3\n")
- .arg(m_command, detectOption());
- s += Tr::tr(" %1 <compiler path> <profile name>\n")
- .arg(m_command);
+ s += Tr::tr(" %1 [%2 <settings directory>] %3\n")
+ .arg(m_command, settingsDirOption(), detectOption());
+ s += Tr::tr(" %1 [%3 <settings directory>] <compiler path> <profile name>\n")
+ .arg(m_command, settingsDirOption());
s += Tr::tr(" %1 %2|%3\n").arg(m_command, helpOptionShort(), helpOptionLong());
s += Tr::tr("The first form tries to auto-detect all known Qt versions, looking them up "
"via the PATH environment variable.\n");
diff --git a/src/app/qbs-setup-qt/commandlineparser.h b/src/app/qbs-setup-qt/commandlineparser.h
index 21310f432..2b64fe854 100644
--- a/src/app/qbs-setup-qt/commandlineparser.h
+++ b/src/app/qbs-setup-qt/commandlineparser.h
@@ -26,8 +26,8 @@
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
-#ifndef QBS_SETUPQT_COMMANDLINEPARSER_H
-#define QBS_SETUPQT_COMMANDLINEPARSER_H
+#ifndef QBS_SETUPTOOLCHAINS_COMMANDLINEPARSER_H
+#define QBS_SETUPTOOLCHAINS_COMMANDLINEPARSER_H
#include <QStringList>
@@ -41,6 +41,7 @@ public:
QString qmakePath() const { return m_qmakePath; }
QString profileName() const { return m_profileName; }
+ QString settingsDir() const { return m_settingsDir; }
QString usageString() const;
diff --git a/src/app/qbs-setup-qt/main.cpp b/src/app/qbs-setup-qt/main.cpp
index bbd80461c..065f142c9 100644
--- a/src/app/qbs-setup-qt/main.cpp
+++ b/src/app/qbs-setup-qt/main.cpp
@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
return EXIT_SUCCESS;
}
- SettingsPtr settings = qbsSettings();
+ SettingsPtr settings = qbsSettings(clParser.settingsDir());
if (clParser.autoDetectionMode()) {
// search all Qt's in path and dump their settings