aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/qbs
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2013-07-23 12:30:45 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2013-07-23 14:39:09 +0200
commit57e4655e07087a50dfbdd3b9d6886c941bb2ff6f (patch)
tree4b5a0a1f7d41ddc6198214f23e20459476ec5adc /src/app/qbs
parent1670c3af43c7af113b9f6eadc1d30d1e271cfc6c (diff)
add build option --check-timestamps
Give users the possibility to force qbs to read the physical timestamps instead of using the stored timestamps. Task-number: QBS-303 Change-Id: I6010515b5e8f97ec0b91069cbc7d8a1b0931dce5 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/app/qbs')
-rw-r--r--src/app/qbs/parser/command.cpp3
-rw-r--r--src/app/qbs/parser/commandlineoption.cpp13
-rw-r--r--src/app/qbs/parser/commandlineoption.h8
-rw-r--r--src/app/qbs/parser/commandlineoptionpool.cpp9
-rw-r--r--src/app/qbs/parser/commandlineoptionpool.h1
-rw-r--r--src/app/qbs/parser/commandlineparser.cpp6
-rw-r--r--src/app/qbs/parser/commandlineparser.h1
7 files changed, 40 insertions, 1 deletions
diff --git a/src/app/qbs/parser/command.cpp b/src/app/qbs/parser/command.cpp
index e9624c5c6..a29d8957f 100644
--- a/src/app/qbs/parser/command.cpp
+++ b/src/app/qbs/parser/command.cpp
@@ -209,7 +209,8 @@ static QList<CommandLineOption::Type> buildOptions()
QList<CommandLineOption::Type> options = resolveOptions();
return options << CommandLineOption::KeepGoingOptionType
<< CommandLineOption::ProductsOptionType
- << CommandLineOption::ChangedFilesOptionType;
+ << CommandLineOption::ChangedFilesOptionType
+ << CommandLineOption::ForceTimestampCheckOptionType;
}
QList<CommandLineOption::Type> BuildCommand::supportedOptions() const
diff --git a/src/app/qbs/parser/commandlineoption.cpp b/src/app/qbs/parser/commandlineoption.cpp
index 358ed312a..c9d21c405 100644
--- a/src/app/qbs/parser/commandlineoption.cpp
+++ b/src/app/qbs/parser/commandlineoption.cpp
@@ -335,6 +335,19 @@ QString ForceOption::longRepresentation() const
return QLatin1String("--force");
}
+QString ForceTimeStampCheckOption::description(CommandType command) const
+{
+ Q_UNUSED(command);
+ return Tr::tr("%1\n\tForce timestamp checks.\n"
+ "\tInstead of using the file timestamps that are stored in the build graph, "
+ "retrieve the timestamps from the file system.\n").arg(longRepresentation());
+}
+
+QString ForceTimeStampCheckOption::longRepresentation() const
+{
+ return QLatin1String("--check-timestamps");
+}
+
InstallRootOption::InstallRootOption() : m_useSysroot(false)
{
diff --git a/src/app/qbs/parser/commandlineoption.h b/src/app/qbs/parser/commandlineoption.h
index a6e0612fe..8457ef4cb 100644
--- a/src/app/qbs/parser/commandlineoption.h
+++ b/src/app/qbs/parser/commandlineoption.h
@@ -50,6 +50,7 @@ public:
AllArtifactsOptionType,
InstallRootOptionType, RemoveFirstOptionType, NoBuildOptionType,
ForceOptionType,
+ ForceTimestampCheckOptionType,
LogTimeOptionType
};
@@ -180,6 +181,13 @@ class ForceOption : public OnOffOption
QString longRepresentation() const;
};
+class ForceTimeStampCheckOption : public OnOffOption
+{
+ QString description(CommandType command) const;
+ QString shortRepresentation() const { return QString(); }
+ QString longRepresentation() const;
+};
+
class StringListOption : public CommandLineOption
{
diff --git a/src/app/qbs/parser/commandlineoptionpool.cpp b/src/app/qbs/parser/commandlineoptionpool.cpp
index df13af9f2..a7a0d7ab7 100644
--- a/src/app/qbs/parser/commandlineoptionpool.cpp
+++ b/src/app/qbs/parser/commandlineoptionpool.cpp
@@ -85,6 +85,9 @@ CommandLineOption *CommandLineOptionPool::getOption(CommandLineOption::Type type
case CommandLineOption::ForceOptionType:
option = new ForceOption;
break;
+ case CommandLineOption::ForceTimestampCheckOptionType:
+ option = new ForceTimeStampCheckOption;
+ break;
case CommandLineOption::LogTimeOptionType:
option = new LogTimeOption;
break;
@@ -168,6 +171,12 @@ ForceOption *CommandLineOptionPool::forceOption() const
return static_cast<ForceOption *>(getOption(CommandLineOption::ForceOptionType));
}
+ForceTimeStampCheckOption *CommandLineOptionPool::forceTimestampCheckOption() const
+{
+ return static_cast<ForceTimeStampCheckOption *>(
+ getOption(CommandLineOption::ForceTimestampCheckOptionType));
+}
+
LogTimeOption *CommandLineOptionPool::logTimeOption() const
{
return static_cast<LogTimeOption *>(getOption(CommandLineOption::LogTimeOptionType));
diff --git a/src/app/qbs/parser/commandlineoptionpool.h b/src/app/qbs/parser/commandlineoptionpool.h
index 27de8d60a..46c36a9d9 100644
--- a/src/app/qbs/parser/commandlineoptionpool.h
+++ b/src/app/qbs/parser/commandlineoptionpool.h
@@ -56,6 +56,7 @@ public:
RemoveFirstOption *removeFirstoption() const;
NoBuildOption *noBuildOption() const;
ForceOption *forceOption() const;
+ ForceTimeStampCheckOption *forceTimestampCheckOption() const;
LogTimeOption *logTimeOption() const;
private:
diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp
index 551f8f4dc..c81d267ef 100644
--- a/src/app/qbs/parser/commandlineparser.cpp
+++ b/src/app/qbs/parser/commandlineparser.cpp
@@ -169,6 +169,11 @@ bool CommandLineParser::force() const
return d->optionPool.forceOption()->enabled();
}
+bool CommandLineParser::forceTimestampCheck() const
+{
+ return d->optionPool.forceTimestampCheckOption()->enabled();
+}
+
bool CommandLineParser::dryRun() const
{
return d->dryRun();
@@ -477,6 +482,7 @@ void CommandLineParser::CommandLineParserPrivate::setupBuildOptions()
}
buildOptions.setChangedFiles(changedFiles);
buildOptions.setKeepGoing(optionPool.keepGoingOption()->enabled());
+ buildOptions.setForceTimestampCheck(optionPool.forceTimestampCheckOption()->enabled());
const JobsOption * jobsOption = optionPool.jobsOption();
buildOptions.setMaxJobCount(jobsOption->jobCount() > 0
? jobsOption->jobCount() : Preferences(settings).jobs());
diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h
index 76ea1ee94..16994437c 100644
--- a/src/app/qbs/parser/commandlineparser.h
+++ b/src/app/qbs/parser/commandlineparser.h
@@ -58,6 +58,7 @@ public:
CleanOptions cleanOptions() const;
InstallOptions installOptions() const;
bool force() const;
+ bool forceTimestampCheck() const;
bool dryRun() const;
bool logTime() const;
bool buildBeforeInstalling() const;