From 3f8e3373e1b7fd34d4223b8853587273ae6beb34 Mon Sep 17 00:00:00 2001 From: John Brooks Date: Tue, 10 Mar 2015 18:02:54 -0600 Subject: [PATCH] Fix QMAKE_INFO_PLIST regression with relative paths In de5553aa, qmake was fixed to resolve QMAKE_INFO_PLIST based on the current pwd to fix QTBUG-21267. This fix was lost as part of 8c138054 in 5.4. This fixes the error: "WARNING: Could not resolve Info.plist ..." when using qmake for shadow builds on OS X. [ChangeLog][qmake][OS X/iOS] Fixed QMAKE_INFO_PLIST path resolution for shadow builds Change-Id: Icb42b2b3a44856f9b9a86a008081a3353951640d Reviewed-by: Oswald Buddenhagen --- qmake/generators/unix/unixmake2.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp index 469f23340d2..f3a24a8681c 100644 --- a/qmake/generators/unix/unixmake2.cpp +++ b/qmake/generators/unix/unixmake2.cpp @@ -779,14 +779,17 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t) } //copy the plist while (!project->isActiveConfig("no_plist")) { // 'while' just to be able to 'break' - QString info_plist = escapeFilePath(fileFixify(project->first("QMAKE_INFO_PLIST").toQString())); - if (info_plist.isEmpty()) - info_plist = specdir() + QDir::separator() + "Info.plist." + project->first("TEMPLATE"); - if (!exists(Option::fixPathToLocalOS(info_plist))) { + QString info_plist = project->first("QMAKE_INFO_PLIST").toQString(); + if (info_plist.isEmpty()) { + info_plist = escapeFilePath(specdir() + QDir::separator() + "Info.plist." + project->first("TEMPLATE")); + } else if (!exists(Option::fixPathToLocalOS(info_plist))) { warn_msg(WarnLogic, "Could not resolve Info.plist: '%s'. Check if QMAKE_INFO_PLIST points to a valid file.", info_plist.toLatin1().constData()); break; + } else { + info_plist = escapeFilePath(fileFixify(info_plist)); } + bool isApp = (project->first("TEMPLATE") == "app"); QString info_plist_out = escapeFilePath( bundle_dir + (isApp ? "Contents/Info.plist"