From 1dd6433b19b51f4c43a7f3c34314cc50edaeda34 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 11 Sep 2018 10:38:43 +0200 Subject: qmake: fix .prl file generation for bundles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit amends 2b27646146a. Fixes: QTBUG-70444 Change-Id: I8bd310f5624ea0ac9260c7d9ea0d29b0c9caa077 Reviewed-by: Tor Arne Vestbø --- qmake/generators/makefile.cpp | 2 -- qmake/generators/unix/unixmake2.cpp | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'qmake') diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index e41e391cad..b7e591d2ab 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -1101,8 +1101,6 @@ QString MakefileGenerator::prlFileName(bool fixify) { QString ret = project->first("PRL_TARGET") + Option::prl_ext; - if(!project->isEmpty("QMAKE_BUNDLE")) - ret.prepend(project->first("QMAKE_BUNDLE") + Option::dir_sep); if(fixify) { if(!project->isEmpty("DESTDIR")) ret.prepend(project->first("DESTDIR").toQString()); diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp index 976751b02c..d3abedb50b 100644 --- a/qmake/generators/unix/unixmake2.cpp +++ b/qmake/generators/unix/unixmake2.cpp @@ -1225,6 +1225,8 @@ void UnixMakefileGenerator::init2() else ar_cmd.append("$(AR) $(TARGETA) $(OBJECTS)"); if (!project->isEmpty("QMAKE_BUNDLE")) { + project->values("PRL_TARGET").prepend( + project->first("QMAKE_BUNDLE") + Option::dir_sep + project->first("TARGET")); ProString bundle_loc = project->first("QMAKE_BUNDLE_LOCATION"); if(!bundle_loc.isEmpty() && !bundle_loc.startsWith("/")) bundle_loc.prepend("/"); -- cgit v1.2.3 From 299734c3ee96055f72557cf8c25221bab5ce1a11 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Mon, 5 Nov 2018 11:16:28 +0100 Subject: Revert "Revert "qmake: Work around MSVC compiler bug."" The assert still happens on MSVC 2015 64 bit when running qmake -tp vc -r. This reverts commit f4169a633b97b7b6e7365172cf3d38d2f16a8914. Fixes: QTBUG-71228 Change-Id: I05bd3e0677414edb970f07e0555cdc95ce32f592 Reviewed-by: Friedemann Kleint (cherry picked from commit 4be8168ff7fe8c871a7f3cd7dce8fa4f70e1a6cf) Reviewed-by: Joerg Bornemann --- qmake/generators/win32/msvc_vcproj.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'qmake') diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index f7837fc1b4..95c16661e7 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -208,6 +208,16 @@ struct VcsolutionDepend { QStringList dependencies; }; +/* Disable optimization in getProjectUUID() due to a compiler + * bug in MSVC 2015 that causes ASSERT: "&other != this" in the QString + * copy constructor for non-empty file names at: + * filename.isEmpty()?project->first("QMAKE_MAKEFILE"):filename */ + +#if defined(Q_CC_MSVC) && !defined(Q_CC_CLANG) +# pragma optimize( "g", off ) +# pragma warning ( disable : 4748 ) +#endif + QUuid VcprojGenerator::getProjectUUID(const QString &filename) { bool validUUID = true; @@ -239,6 +249,10 @@ QUuid VcprojGenerator::getProjectUUID(const QString &filename) return uuid; } +#if defined(Q_CC_MSVC) && !defined(Q_CC_CLANG) +# pragma optimize( "g", on ) +#endif + QUuid VcprojGenerator::increaseUUID(const QUuid &id) { QUuid result(id); -- cgit v1.2.3 From 127005d3608490e9688dfeedfdafb13458ed55ea Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 19 Nov 2018 12:37:34 +0100 Subject: qmake: fix return type of toLongLong() Fixes: QTBUG-71886 Change-Id: I62880e7ad8a1707c9094b07cf89d5c0c7841d235 Reviewed-by: Joerg Bornemann --- qmake/library/proitems.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'qmake') diff --git a/qmake/library/proitems.h b/qmake/library/proitems.h index 2b09fc2074..71e5e05367 100644 --- a/qmake/library/proitems.h +++ b/qmake/library/proitems.h @@ -133,7 +133,7 @@ public: bool contains(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const { return indexOf(s, 0, cs) >= 0; } bool contains(const char *s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const { return indexOf(QLatin1String(s), 0, cs) >= 0; } bool contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const { return indexOf(c, 0, cs) >= 0; } - int toLongLong(bool *ok = nullptr, int base = 10) const { return toQStringRef().toLongLong(ok, base); } + qlonglong toLongLong(bool *ok = nullptr, int base = 10) const { return toQStringRef().toLongLong(ok, base); } int toInt(bool *ok = nullptr, int base = 10) const { return toQStringRef().toInt(ok, base); } short toShort(bool *ok = nullptr, int base = 10) const { return toQStringRef().toShort(ok, base); } -- cgit v1.2.3