Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
4.7.2
-
None
-
Windows
-
c9406bcffe63f1ce232ce91b00be294e0135282a
Description
When using the Intel compiler, but linking against a dll built with msvc 2008, then adding CONFIG += embed_manifest_dll embed_manifest_exe to embed the manifest file does not work. It is necessary to manually add the embedding command line :
QMAKE_POST_LINK += mt.exe -nologo -manifest "$(DESTDIR)$(TARGET).manifest" -outputresource:$(DESTDIR)$(TARGET);1
for it to work.
The following patch fixes the problem:
— a/mkspecs/features/win32/embed_manifest_dll.prf
+++ b/mkspecs/features/win32/embed_manifest_dll.prf
@@ -1,4 +1,4 @@
-!if(plugin:no_plugin_manifest):if(win32-msvc2005*|win32-msvc2008*|win32-msvc2010*):!static:equals(TEMPLATE, "lib") {
+!if(plugin:no_plugin_manifest):if(win32-msvc2005*|win32-msvc2008*|win32-msvc2010*|win32-icc):!static:equals(TEMPLATE, "lib") {
MANIFEST_DIR = $$OBJECTS_DIR
isEmpty(MANIFEST_DIR):MANIFEST_DIR = .
NOPATH_TARGET = $$TARGET
— a/mkspecs/features/win32/embed_manifest_exe.prf
+++ b/mkspecs/features/win32/embed_manifest_exe.prf
@@ -1,4 +1,4 @@
-if(win32-msvc2005*|win32-msvc2008*|win32-msvc2010*):equals(TEMPLATE, "app") {
+if(win32-msvc2005*|win32-msvc2008*|win32-msvc2010*|win32-icc):equals(TEMPLATE, "app") {
MANIFEST_DIR = $$OBJECTS_DIR
isEmpty(MANIFEST_DIR):MANIFEST_DIR = .
NOPATH_TARGET = $$TARGET