summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@nokia.com>2012-08-15 12:18:49 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-16 08:26:24 +0200
commitc9406bcffe63f1ce232ce91b00be294e0135282a (patch)
tree74aa70ca0ba7911c37c1d7b423db9bfc7c11c524 /mkspecs
parent15b5b28425f52fcbb2b85c94ec485af841adb4b5 (diff)
qmake: support incremental linking when embedding manifests
When embedding manifests we modified the EXE/DLL after linking using the manifest tool. This breaks the incremental linking feature of MSVC. The MS way to embed a manifest without breaking incremental linking is: - let the linker create the manifest file, - create a resource that contains the manifest file, - invoke the linker again to embed the resource. The embed_manifest_{exe|dll}.prf files have been removed. All manifest logic is now in qmake's nmake makefile generator. With QMAKE_MANIFEST one can specify a custom manifest file that gets embedded without disturbing incremental linking. Task-number: QTBUG-22718 Change-Id: Idb9d2644a0577b2002cbdd2d62b695b9171b1bd5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/win32/embed_manifest_dll.prf12
-rw-r--r--mkspecs/features/win32/embed_manifest_exe.prf12
2 files changed, 0 insertions, 24 deletions
diff --git a/mkspecs/features/win32/embed_manifest_dll.prf b/mkspecs/features/win32/embed_manifest_dll.prf
deleted file mode 100644
index 5d94548d74..0000000000
--- a/mkspecs/features/win32/embed_manifest_dll.prf
+++ /dev/null
@@ -1,12 +0,0 @@
-!if(plugin:no_plugin_manifest):if(win32-msvc2005*|win32-msvc2008*|win32-msvc2010*|win32-msvc2012*):!static:equals(TEMPLATE, "lib") {
- MANIFEST_DIR = $$OBJECTS_DIR
- isEmpty(MANIFEST_DIR):MANIFEST_DIR = .
- NOPATH_TARGET = $$TARGET
- NOPATH_TARGET ~= s,\\\\ , ,q # Remove space escaping (NOPATH_TARGET is quoted)
- NOPATH_TARGET ~= s,\\\\,/,g # Change to single type separators
- NOPATH_TARGET ~= s,^(.*/)+,, # Remove all paths
- QMAKE_LFLAGS += /MANIFEST $$quote(/MANIFESTFILE:\"$${MANIFEST_DIR}\\$${NOPATH_TARGET}.intermediate.manifest\")
- !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
- QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest $$shell_quote($$shell_path($$MANIFEST_DIR/$${NOPATH_TARGET}.intermediate.manifest)) -outputresource:$(DESTDIR_TARGET);2)$$QMAKE_POST_LINK
- QMAKE_CLEAN += $$MANIFEST_DIR/$${NOPATH_TARGET}.intermediate.manifest
-}
diff --git a/mkspecs/features/win32/embed_manifest_exe.prf b/mkspecs/features/win32/embed_manifest_exe.prf
deleted file mode 100644
index e53006ef2c..0000000000
--- a/mkspecs/features/win32/embed_manifest_exe.prf
+++ /dev/null
@@ -1,12 +0,0 @@
-if(win32-msvc2005*|win32-msvc2008*|win32-msvc2010*|win32-msvc2012*):equals(TEMPLATE, "app") {
- MANIFEST_DIR = $$OBJECTS_DIR
- isEmpty(MANIFEST_DIR):MANIFEST_DIR = .
- NOPATH_TARGET = $$TARGET
- NOPATH_TARGET ~= s,\\\\ , ,q # Remove space escaping (NOPATH_TARGET is quoted)
- NOPATH_TARGET ~= s,\\\\,/,g # Change to single type separators
- NOPATH_TARGET ~= s,^(.*/)+,, # Remove all paths
- QMAKE_LFLAGS += /MANIFEST $$quote(/MANIFESTFILE:\"$${MANIFEST_DIR}\\$${NOPATH_TARGET}.intermediate.manifest\")
- !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
- QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest $$shell_quote($$shell_path($$MANIFEST_DIR/$${NOPATH_TARGET}.intermediate.manifest)) -outputresource:$(DESTDIR_TARGET);1)$$QMAKE_POST_LINK
- QMAKE_CLEAN += $$MANIFEST_DIR/$${NOPATH_TARGET}.intermediate.manifest
-}