From 81bd1bba7b67716ed0ae565061ebedc5a5455a40 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 12 Feb 2020 15:27:27 +0100 Subject: Windows: Add install/uninstall rules for target.targets Mirror the behavior in unixmake.cpp and do actually install /uninstall files in target.targets. This fixes the installation of .debug files on MinGW for a Qt with -force-debug-info -separate-debug-info. [ChangeLog][qmake] Install/uninstall rules are now generated for target.targets on Windows. This mirrors the behavior on Unix. Fixes: QTBUG-81354 Change-Id: Ie9366f132ebd8e18680f32f2e52cec64dbd87e9a Reviewed-by: Joerg Bornemann --- qmake/generators/win32/winmakefile.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'qmake/generators') diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp index 86d10c213c..3ec2704625 100644 --- a/qmake/generators/win32/winmakefile.cpp +++ b/qmake/generators/win32/winmakefile.cpp @@ -736,6 +736,18 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t) if(targetdir.right(1) != Option::dir_sep) targetdir += Option::dir_sep; + const ProStringList &targets = project->values(ProKey(t + ".targets")); + for (int i = 0; i < targets.size(); ++i) { + QString src = targets.at(i).toQString(), + dst = escapeFilePath(filePrefixRoot(root, targetdir + src.section('/', -1))); + if (!ret.isEmpty()) + ret += "\n\t"; + ret += "$(QINSTALL) " + escapeFilePath(Option::fixPathToTargetOS(src, false)) + ' ' + dst; + if (!uninst.isEmpty()) + uninst.append("\n\t"); + uninst.append("-$(DEL_FILE) " + dst); + } + if(t == "target" && project->first("TEMPLATE") == "lib") { if(project->isActiveConfig("create_prl") && !project->isActiveConfig("no_install_prl") && !project->isEmpty("QMAKE_INTERNAL_PRL_FILE")) { @@ -744,6 +756,8 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t) if(slsh != -1) dst_prl = dst_prl.right(dst_prl.length() - slsh - 1); dst_prl = filePrefixRoot(root, targetdir + dst_prl); + if (!ret.isEmpty()) + ret += "\n\t"; ret += installMetaFile(ProKey("QMAKE_PRL_INSTALL_REPLACE"), project->first("QMAKE_INTERNAL_PRL_FILE").toQString(), dst_prl); if(!uninst.isEmpty()) uninst.append("\n\t"); -- cgit v1.2.3