summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qmake/doc/snippets/code/doc_src_qmake-manual.pro4
-rw-r--r--qmake/doc/src/qmake-manual.qdoc10
-rw-r--r--qmake/generators/win32/msvc_nmake.cpp18
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp18
4 files changed, 36 insertions, 14 deletions
diff --git a/qmake/doc/snippets/code/doc_src_qmake-manual.pro b/qmake/doc/snippets/code/doc_src_qmake-manual.pro
index 857a311e91..be5f979e39 100644
--- a/qmake/doc/snippets/code/doc_src_qmake-manual.pro
+++ b/qmake/doc/snippets/code/doc_src_qmake-manual.pro
@@ -982,3 +982,7 @@ QMAKE_SONAME_PREFIX = @executable_path/../Frameworks
QMAKE_SONAME_PREFIX = @loader_path/Frameworks
QMAKE_SONAME_PREFIX = /Library/Frameworks
#! [184]
+
+#! [185]
+VERSION_PE_HEADER = 1.2
+#! [185]
diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc
index 2def71c723..8c3dc46015 100644
--- a/qmake/doc/src/qmake-manual.qdoc
+++ b/qmake/doc/src/qmake-manual.qdoc
@@ -2484,6 +2484,16 @@
\snippet code/doc_src_qmake-manual.pro 57
+ \section1 VERSION_PE_HEADER
+
+ Windows only. Specifies the version number, that the Windows linker
+ puts into the header of the .exe or .dll file via the /VERSION option.
+ Only a major and minor version may be specified.
+ If VERSION_PE_HEADER is not set, it falls back to
+ the major and minor version from \l{VERSION} (if set).
+
+ \snippet code/doc_src_qmake-manual.pro 185
+
\section1 VER_MAJ
Specifies the major version number of the library if the
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp
index 740c8c4d13..daa356c8b0 100644
--- a/qmake/generators/win32/msvc_nmake.cpp
+++ b/qmake/generators/win32/msvc_nmake.cpp
@@ -354,14 +354,18 @@ void NmakeMakefileGenerator::init()
project->values("QMAKE_LFLAGS").append(QString("/DEF:") + escapeFilePath(defFileName));
}
- if(!project->values("VERSION").isEmpty()) {
- ProString version = project->values("VERSION")[0];
- int firstDot = version.indexOf(".");
- QString major = version.left(firstDot).toQString();
- QString minor = version.right(version.length() - firstDot - 1).toQString();
- minor.replace(".", "");
- project->values("QMAKE_LFLAGS").append("/VERSION:" + major + "." + minor);
+ // set /VERSION for EXE/DLL header
+ ProString major_minor = project->first("VERSION_PE_HEADER");
+ if (major_minor.isEmpty()) {
+ ProString version = project->first("VERSION");
+ if (!version.isEmpty()) {
+ int firstDot = version.indexOf(".");
+ int secondDot = version.indexOf(".", firstDot + 1);
+ major_minor = version.left(secondDot);
+ }
}
+ if (!major_minor.isEmpty())
+ project->values("QMAKE_LFLAGS").append("/VERSION:" + major_minor);
if (project->isEmpty("QMAKE_LINK_O_FLAG"))
project->values("QMAKE_LINK_O_FLAG").append("/OUT:");
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index 3222030018..9dbeeb38b5 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -787,14 +787,18 @@ void VcprojGenerator::init()
processVars();
- if(!project->values("VERSION").isEmpty()) {
- QString version = project->values("VERSION")[0].toQString();
- int firstDot = version.indexOf(".");
- QString major = version.left(firstDot);
- QString minor = version.right(version.length() - firstDot - 1);
- minor.replace(QRegExp("\\."), "");
- project->values("QMAKE_LFLAGS").append("/VERSION:" + major + "." + minor);
+ // set /VERSION for EXE/DLL header
+ ProString major_minor = project->first("VERSION_PE_HEADER");
+ if (major_minor.isEmpty()) {
+ ProString version = project->first("VERSION");
+ if (!version.isEmpty()) {
+ int firstDot = version.indexOf(".");
+ int secondDot = version.indexOf(".", firstDot + 1);
+ major_minor = version.left(secondDot);
+ }
}
+ if (!major_minor.isEmpty())
+ project->values("QMAKE_LFLAGS").append("/VERSION:" + major_minor);
MakefileGenerator::init();