summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <[email protected]>2023-01-13 10:53:43 +0100
committerJoerg Bornemann <[email protected]>2023-01-18 13:21:05 +0100
commit98a3634299e29104dee391145728dbad9797d7b3 (patch)
tree37f18ec26b5440148f2f9910ae016d86996adf26
parentb71169005983f6eb9ac2e6eeb25533bf72a715d7 (diff)
Make qmake and qtpaths report Qt version baked into the binaries
QMake and qtpaths used qVersion() to report Qt's version number. This is problematic if those tools are run in an environment where a different Qt version is loaded (e.g. by setting LD_LIBRARY_PATH). This reverts commit a783c3d574a1400c4dfdd32975fc511f095df8b2, which changed the use of the QT_VERSION define to a qVersion() call in qmake. Additionally, we use QT_VERSION in qtpaths too for consistency. Pick-to: 6.5 Change-Id: I6c8a1aa6ee6169becd7c685a98ce23c22c3864c7 Reviewed-by: hjk <[email protected]> Reviewed-by: Alexandru Croitor <[email protected]>
-rw-r--r--qmake/CMakeLists.txt1
-rw-r--r--qmake/generators/makefile.cpp2
-rw-r--r--qmake/generators/unix/unixmake2.cpp2
-rw-r--r--qmake/option.cpp2
-rw-r--r--qmake/property.cpp6
-rw-r--r--src/tools/qtpaths/CMakeLists.txt1
-rw-r--r--src/tools/qtpaths/qtpaths.cpp2
7 files changed, 11 insertions, 5 deletions
diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt
index 8b74b85c495..9be6b92d683 100644
--- a/qmake/CMakeLists.txt
+++ b/qmake/CMakeLists.txt
@@ -40,6 +40,7 @@ target_compile_definitions(QtLibraryInfo PUBLIC
QT_BUILD_QMAKE
QT_USE_QSTRINGBUILDER
QT_NO_FOREACH
+ QT_VERSION_STR="${PROJECT_VERSION}"
QT_HOST_MKSPEC="${QT_QMAKE_HOST_MKSPEC}"
QT_TARGET_MKSPEC="${QT_QMAKE_TARGET_MKSPEC}"
QT_HOST_DATADIR="${hostdatadir}"
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 257601eaf76..cc985a878b4 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -2298,7 +2298,7 @@ MakefileGenerator::writeHeader(QTextStream &t)
{
t << "#############################################################################\n";
t << "# Makefile for building: " << escapeFilePath(var("TARGET")) << Qt::endl;
- t << "# Generated by qmake (" QMAKE_VERSION_STR ") (Qt " << qVersion() << ")\n";
+ t << "# Generated by qmake (" QMAKE_VERSION_STR ") (Qt " QT_VERSION_STR ")\n";
t << "# Project: " << fileFixify(project->projectFile()) << Qt::endl;
t << "# Template: " << var("TEMPLATE") << Qt::endl;
if(!project->isActiveConfig("build_pass"))
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
index 20ba642e9db..19e0b73ab42 100644
--- a/qmake/generators/unix/unixmake2.cpp
+++ b/qmake/generators/unix/unixmake2.cpp
@@ -1478,7 +1478,7 @@ UnixMakefileGenerator::writeLibtoolFile()
QTextStream t(&ft);
t << "# " << lname << " - a libtool library file\n";
t << "# Generated by qmake/libtool (" QMAKE_VERSION_STR ") (Qt "
- << qVersion() << ")";
+ << QT_VERSION_STR << ")";
t << "\n";
t << "# The name that we can dlopen(3).\n"
diff --git a/qmake/option.cpp b/qmake/option.cpp
index 885022b6736..584161818fe 100644
--- a/qmake/option.cpp
+++ b/qmake/option.cpp
@@ -200,7 +200,7 @@ Option::parseCommandLine(QStringList &args, QMakeCmdLineParserState &state)
fprintf(stdout,
"QMake version %s\n"
"Using Qt version %s in %s\n",
- QMAKE_VERSION_STR, qVersion(),
+ QMAKE_VERSION_STR, QT_VERSION_STR,
QMakeLibraryInfo::path(QLibraryInfo::LibrariesPath)
.toLatin1()
.constData());
diff --git a/qmake/property.cpp b/qmake/property.cpp
index af4ed0e9eed..32b6729c138 100644
--- a/qmake/property.cpp
+++ b/qmake/property.cpp
@@ -76,7 +76,9 @@ void QMakeProperty::reload()
#ifdef QMAKE_VERSION_STR
m_values["QMAKE_VERSION"] = ProString(QMAKE_VERSION_STR);
#endif
- m_values["QT_VERSION"] = ProString(qVersion());
+#ifdef QT_VERSION_STR
+ m_values["QT_VERSION"] = ProString(QT_VERSION_STR);
+#endif
}
QMakeProperty::~QMakeProperty()
@@ -142,7 +144,9 @@ int QMakeProperty::queryProperty(const QStringList &optionProperties,
#ifdef QMAKE_VERSION_STR
specialProps.append("QMAKE_VERSION");
#endif
+#ifdef QT_VERSION_STR
specialProps.append("QT_VERSION");
+#endif
for (const QString &prop : std::as_const(specialProps)) {
ProString val = value(ProKey(prop));
ProString pval = value(ProKey(prop + "/raw"));
diff --git a/src/tools/qtpaths/CMakeLists.txt b/src/tools/qtpaths/CMakeLists.txt
index 5a100e7f5f8..90613b17d0a 100644
--- a/src/tools/qtpaths/CMakeLists.txt
+++ b/src/tools/qtpaths/CMakeLists.txt
@@ -17,6 +17,7 @@ qt_internal_add_tool(${target_name}
DEFINES
QT_NO_FOREACH
QTPATHS_VERSION_STR="2.0"
+ QT_VERSION_STR="${PROJECT_VERSION}"
)
qt_internal_return_unless_building_tools()
diff --git a/src/tools/qtpaths/qtpaths.cpp b/src/tools/qtpaths/qtpaths.cpp
index fa29381d789..db101efca59 100644
--- a/src/tools/qtpaths/qtpaths.cpp
+++ b/src/tools/qtpaths/qtpaths.cpp
@@ -228,7 +228,7 @@ int main(int argc, char **argv)
QStringList results;
if (parser.isSet(qtversion)) {
- QString qtversionstring = QString::fromLatin1(qVersion());
+ QString qtversionstring = QString::fromLatin1(QT_VERSION_STR);
results << qtversionstring;
}