diff options
Diffstat (limited to 'src/lib/corelib/tools')
-rw-r--r-- | src/lib/corelib/tools/buildoptions.cpp | 25 | ||||
-rw-r--r-- | src/lib/corelib/tools/buildoptions.h | 3 | ||||
-rw-r--r-- | src/lib/corelib/tools/filetime.h | 1 | ||||
-rw-r--r-- | src/lib/corelib/tools/filetime_unix.cpp | 5 | ||||
-rw-r--r-- | src/lib/corelib/tools/filetime_win.cpp | 14 |
5 files changed, 46 insertions, 2 deletions
diff --git a/src/lib/corelib/tools/buildoptions.cpp b/src/lib/corelib/tools/buildoptions.cpp index 2261124d8..a2d703363 100644 --- a/src/lib/corelib/tools/buildoptions.cpp +++ b/src/lib/corelib/tools/buildoptions.cpp @@ -42,6 +42,7 @@ public: } QStringList changedFiles; + QStringList filesToConsider; QStringList activeFileTags; int maxJobCount; bool dryRun; @@ -98,6 +99,26 @@ void BuildOptions::setChangedFiles(const QStringList &changedFiles) } /*! + * \brief The list of files to consider. + * \sa setFilesToConsider. + * By default, this list is empty. + */ +QStringList BuildOptions::filesToConsider() const +{ + return d->filesToConsider; +} + +/*! + * \brief If the given list is non-empty, qbs will run only commands whose rule has at least one + * of these files as an input. + * \note The list elements must be absolute file paths. + */ +void BuildOptions::setFilesToConsider(const QStringList &files) +{ + d->filesToConsider = files; +} + +/*! * \brief The list of active file tags. * \sa setActiveFileTags */ @@ -109,8 +130,8 @@ QStringList BuildOptions::activeFileTags() const /*! * \brief Set the list of active file tags. * If this list is non-empty, then every transformer with non-matching output file tags is skipped. - * E.g. set changed files to "foo.cpp" and activeFileTags to ["obj"] to run the compiler - * on foo.cpp without further processing like linking. + * E.g. call \c setFilesToConsider() with "foo.cpp" and \c setActiveFileTags() with "obj" to + * run the compiler on foo.cpp without further processing like linking. * \sa activeFileTags */ void BuildOptions::setActiveFileTags(const QStringList &fileTags) diff --git a/src/lib/corelib/tools/buildoptions.h b/src/lib/corelib/tools/buildoptions.h index 2c277fc3b..c79e6477b 100644 --- a/src/lib/corelib/tools/buildoptions.h +++ b/src/lib/corelib/tools/buildoptions.h @@ -45,6 +45,9 @@ public: BuildOptions &operator=(const BuildOptions &other); ~BuildOptions(); + QStringList filesToConsider() const; + void setFilesToConsider(const QStringList &files); + QStringList changedFiles() const; void setChangedFiles(const QStringList &changedFiles); diff --git a/src/lib/corelib/tools/filetime.h b/src/lib/corelib/tools/filetime.h index 0dc0524df..0f16f3ad3 100644 --- a/src/lib/corelib/tools/filetime.h +++ b/src/lib/corelib/tools/filetime.h @@ -68,6 +68,7 @@ public: QString toString() const; static FileTime currentTime(); + static FileTime oldestTime(); friend class FileInfo; InternalType m_fileTime; diff --git a/src/lib/corelib/tools/filetime_unix.cpp b/src/lib/corelib/tools/filetime_unix.cpp index 945be8f44..5dd176c04 100644 --- a/src/lib/corelib/tools/filetime_unix.cpp +++ b/src/lib/corelib/tools/filetime_unix.cpp @@ -62,6 +62,11 @@ FileTime FileTime::currentTime() return time(0); } +FileTime FileTime::oldestTime() +{ + return 1; +} + QString FileTime::toString() const { QDateTime dt; diff --git a/src/lib/corelib/tools/filetime_win.cpp b/src/lib/corelib/tools/filetime_win.cpp index b3a7fab67..706dd4752 100644 --- a/src/lib/corelib/tools/filetime_win.cpp +++ b/src/lib/corelib/tools/filetime_win.cpp @@ -75,6 +75,20 @@ FileTime FileTime::currentTime() return result; } +FileTime FileTime::oldestTime() +{ + SYSTEMTIME st = { + 1601, + 1, + 5, + 2 + }; + FileTime result; + FILETIME *const ft = reinterpret_cast<FILETIME *>(&result.m_fileTime); + SystemTimeToFileTime(&st, ft); + return result; +} + QString FileTime::toString() const { const FILETIME *const ft = reinterpret_cast<const FILETIME *>(&m_fileTime); |