summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorBernhard M. Wiedemann <bwiedemann@suse.de>2023-08-03 08:56:09 +0200
committerBernhard M. Wiedemann <bwiedemann@suse.de>2023-08-09 10:02:06 +0200
commit297fe90329782d35dc4f155185ded045551ef52f (patch)
treec14377e0aadf5f63c813251f7e49bb23695f025b /qmake
parentc63c46037d21df19d15f51e37f2ef1d152109ba0 (diff)
Allow to override build date with SOURCE_DATE_EPOCH
[ChangeLog][qmake] Allows to override _DATE_ with SOURCE_DATE_EPOCH to make builds reproducible. See https://reproducible-builds.org/ for why this is good and https://reproducible-builds.org/specs/source-date-epoch/ for the definition of this variable. Fixes: QTBUG-115737 Change-Id: I1964aa0a3d849628440618aa6f0a51af2017d824 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'qmake')
-rw-r--r--qmake/library/qmakeevaluator.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
index d4cb8aad7a..df3f92d7d5 100644
--- a/qmake/library/qmakeevaluator.cpp
+++ b/qmake/library/qmakeevaluator.cpp
@@ -1013,10 +1013,13 @@ static ProString msvcArchitecture(const QString &vcInstallDir, const QString &pa
void QMakeEvaluator::loadDefaults()
{
ProValueMap &vars = m_valuemapStack.top();
+ qlonglong sde = qgetenv("SOURCE_DATE_EPOCH").toLongLong();
+ QDateTime builddate = sde ? QDateTime::fromSecsSinceEpoch(sde)
+ : QDateTime::currentDateTime();
vars[ProKey("DIR_SEPARATOR")] << ProString(m_option->dir_sep);
vars[ProKey("DIRLIST_SEPARATOR")] << ProString(m_option->dirlist_sep);
- vars[ProKey("_DATE_")] << ProString(QDateTime::currentDateTime().toString());
+ vars[ProKey("_DATE_")] << ProString(builddate.toString());
if (!m_option->qmake_abslocation.isEmpty())
vars[ProKey("QMAKE_QMAKE")] << ProString(m_option->qmake_abslocation);
if (!m_option->qmake_args.isEmpty())