summaryrefslogtreecommitdiff
path: root/Source/cmQtAutoRcc.cxx
diff options
context:
space:
mode:
authorSebastian Holtermann <sebholt@xwmw.org>2019-05-11 21:30:20 +0200
committerSebastian Holtermann <sebholt@xwmw.org>2019-05-11 22:15:47 +0200
commitbd6c3f8609b87f6995acb2aef21aa572f0f73fa7 (patch)
tree60f231a14ed43cefe5475d6149b1c940c8b73a29 /Source/cmQtAutoRcc.cxx
parent54903af84bc8656344e7fe1ea0a11d5f09e94f86 (diff)
downloadcmake-bd6c3f8609b87f6995acb2aef21aa572f0f73fa7.tar.gz
AutoRcc: Rebuild if the rcc executable is newer than its output
In AUTORCC add a test if the rcc executable is newer that the rcc output. If the rcc executable is newer, rebuild the output.
Diffstat (limited to 'Source/cmQtAutoRcc.cxx')
-rw-r--r--Source/cmQtAutoRcc.cxx19
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmQtAutoRcc.cxx b/Source/cmQtAutoRcc.cxx
index 7063f6afd3..922767d9e3 100644
--- a/Source/cmQtAutoRcc.cxx
+++ b/Source/cmQtAutoRcc.cxx
@@ -75,6 +75,13 @@ bool cmQtAutoRcc::Init(cmMakefile* makefile)
// - Rcc executable
RccExecutable_ = InfoGet("ARCC_RCC_EXECUTABLE");
+ if (!RccExecutableTime_.Load(RccExecutable_)) {
+ std::string error = "The rcc executable ";
+ error += Quoted(RccExecutable_);
+ error += " does not exist.";
+ Log().ErrorFile(GenT::RCC, InfoFile(), error);
+ return false;
+ }
RccListOptions_ = InfoGetList("ARCC_RCC_LIST_OPTIONS");
// - Job
@@ -336,6 +343,18 @@ bool cmQtAutoRcc::TestQrcRccFiles(bool& generate)
return true;
}
+ // Test if the rcc output file is older than the rcc executable
+ if (RccFileTime_.Older(RccExecutableTime_)) {
+ if (Log().Verbose()) {
+ Reason = "Generating ";
+ Reason += Quoted(RccFileOutput_);
+ Reason += ", because it is older than the rcc executable, from ";
+ Reason += Quoted(QrcFile_);
+ }
+ generate = true;
+ return true;
+ }
+
return true;
}