summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-03-12 12:33:18 +0100
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-03-12 18:11:13 +0000
commit26e538b6db3c938191e112d25ef5268bbbb0c44f (patch)
tree153b499cdaf651887da15ee995d6a3db972c9c5c /mkspecs
parent5585d66ff01904232705e96d7d195e6dc51cb23a (diff)
Fix installation of separate debug info
Since quoting was fixed, separate debug info has no longer installed correctly because it relied on executing shell commands in the target name. This cleans up the generation and installation of separate debug info by using resolve_target.prf. Change-Id: I3ee47c0e4dc3de600c42f56b17315a69925c4724 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/unix/separate_debug_info.prf22
1 files changed, 12 insertions, 10 deletions
diff --git a/mkspecs/features/unix/separate_debug_info.prf b/mkspecs/features/unix/separate_debug_info.prf
index 394d5f42bc..2a3033df94 100644
--- a/mkspecs/features/unix/separate_debug_info.prf
+++ b/mkspecs/features/unix/separate_debug_info.prf
@@ -9,19 +9,21 @@ have_target:!static:!isEmpty(QMAKE_OBJCOPY) {
debug_info_keep = --only-keep-debug
debug_info_strip = --strip-debug
}
- QMAKE_SEPARATE_DEBUG_INFO = test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\" ; targ=`basename $(TARGET)`; $$QMAKE_OBJCOPY $$debug_info_keep \"\$\$targ\" \"\$\$targ.$$debug_info_suffix\" && $$QMAKE_OBJCOPY $$debug_info_strip \"\$\$targ\" && $$QMAKE_OBJCOPY --add-gnu-debuglink=\"\$\$targ.$$debug_info_suffix\" \"\$\$targ\" && chmod -x \"\$\$targ.$$debug_info_suffix\"
- QMAKE_INSTALL_SEPARATE_DEBUG_INFO = test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\" ; $(INSTALL_FILE) `basename $(TARGET)`.$$debug_info_suffix $(INSTALL_ROOT)/\$\$target_path/
+ load(resolve_target)
+ QMAKE_TARGET_DEBUG_INFO = $${QMAKE_RESOLVED_TARGET}.$$debug_info_suffix
+
+ shell_target = $$shell_quote($$relative_path($$QMAKE_RESOLVED_TARGET, $$OUT_PWD))
+ shell_target_debug_info = $$shell_quote($$relative_path($$QMAKE_TARGET_DEBUG_INFO, $$OUT_PWD))
+ copy_debug_info = $$QMAKE_OBJCOPY $$debug_info_keep $$shell_target $$shell_target_debug_info
+ strip_debug_info = $$QMAKE_OBJCOPY $$debug_info_strip $$shell_target
+ link_debug_info = $$QMAKE_OBJCOPY --add-gnu-debuglink=$$shell_target_debug_info $$shell_target
+ chmod_debug_info = chmod -x $$shell_target_debug_info
!isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
- QMAKE_POST_LINK = $$QMAKE_SEPARATE_DEBUG_INFO $$QMAKE_POST_LINK
+ QMAKE_POST_LINK = $$copy_debug_info $$escape_expand(\\n\\t)$$strip_debug_info $$escape_expand(\\n\\t)$$link_debug_info $$escape_expand(\\n\\t)$$chmod_debug_info $$QMAKE_POST_LINK
silent:QMAKE_POST_LINK = @echo creating $@.$$debug_info_suffix && $$QMAKE_POST_LINK
- isEmpty(DESTDIR) {
- target.targets += "`basename $(TARGET)`.$$debug_info_suffix"
- QMAKE_DISTCLEAN += "`basename $(TARGET)`.$$debug_info_suffix"
- } else {
- target.targets += "$(DESTDIR)/`basename $(TARGET)`.$$debug_info_suffix"
- QMAKE_DISTCLEAN += "$(DESTDIR)/`basename $(TARGET)`.$$debug_info_suffix"
- }
+ target.targets += $$QMAKE_TARGET_DEBUG_INFO
+ QMAKE_DISTCLEAN += $$QMAKE_TARGET_DEBUG_INFO
}