diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2013-07-23 12:30:45 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2013-07-23 14:39:09 +0200 |
commit | 57e4655e07087a50dfbdd3b9d6886c941bb2ff6f (patch) | |
tree | 4b5a0a1f7d41ddc6198214f23e20459476ec5adc /src/app/qbs | |
parent | 1670c3af43c7af113b9f6eadc1d30d1e271cfc6c (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.cpp | 3 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineoption.cpp | 13 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineoption.h | 8 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineoptionpool.cpp | 9 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineoptionpool.h | 1 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineparser.cpp | 6 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineparser.h | 1 |
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; |