summaryrefslogtreecommitdiff
path: root/src/libs
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2011-02-18 14:43:33 +0100
committerChristian Kamm <christian.d.kamm@nokia.com>2011-02-18 14:58:22 +0100
commite236c5de5fe71e73850c1e67b524745ba17f6455 (patch)
tree662b6e5b0ad70874571d6ae00bae85f3647dba30 /src/libs
parent3593fe08aead243cb3b4bea1cfdef80012409ea1 (diff)
downloadqt-creator-e236c5de5fe71e73850c1e67b524745ba17f6455.tar.gz
Compiled helpers: Use only ones that are newer than all source files.
Reviewed-by: Kai Koehne
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/utils/buildablehelperlibrary.cpp12
-rw-r--r--src/libs/utils/buildablehelperlibrary.h3
2 files changed, 12 insertions, 3 deletions
diff --git a/src/libs/utils/buildablehelperlibrary.cpp b/src/libs/utils/buildablehelperlibrary.cpp
index 3bc6b6e449..809aab9b85 100644
--- a/src/libs/utils/buildablehelperlibrary.cpp
+++ b/src/libs/utils/buildablehelperlibrary.cpp
@@ -322,11 +322,19 @@ bool BuildableHelperLibrary::getHelperFileInfoFor(const QStringList &validBinary
return false;
}
-QString BuildableHelperLibrary::byInstallDataHelper(const QString &mainFilename,
+QString BuildableHelperLibrary::byInstallDataHelper(const QString &sourcePath,
+ const QStringList &sourceFileNames,
const QStringList &installDirectories,
const QStringList &validBinaryFilenames)
{
- QDateTime sourcesModified = QFileInfo(mainFilename).lastModified();
+ // find the latest change to the sources
+ QDateTime sourcesModified;
+ foreach (const QString &sourceFileName, sourceFileNames) {
+ const QDateTime fileModified = QFileInfo(sourcePath + sourceFileName).lastModified();
+ if (fileModified.isValid() && (!sourcesModified.isValid() || fileModified > sourcesModified))
+ sourcesModified = fileModified;
+ }
+
// We pretend that the lastmodified of gdbmacros.cpp is 5 minutes before what the file system says
// Because afer a installation from the package the modified dates of gdbmacros.cpp
// and the actual library are close to each other, but not deterministic in one direction
diff --git a/src/libs/utils/buildablehelperlibrary.h b/src/libs/utils/buildablehelperlibrary.h
index 5753eeccf0..1a8063541f 100644
--- a/src/libs/utils/buildablehelperlibrary.h
+++ b/src/libs/utils/buildablehelperlibrary.h
@@ -59,7 +59,8 @@ public:
static QString qtInstallHeadersDir(const QString &qmakePath);
static QString qtInstallDataDir(const QString &qmakePath);
- static QString byInstallDataHelper(const QString &mainFilename,
+ static QString byInstallDataHelper(const QString &sourcePath,
+ const QStringList &sourceFileNames,
const QStringList &installDirectories,
const QStringList &validBinaryFilenames);