From 52f3a7d9d40d3bf835bb0716ad201ee56731b980 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 3 Apr 2020 11:49:27 +0200 Subject: Build qmake with QT_USE_STRINGBUILDER Should improve performance and is going to be required in the future anyway. Change-Id: I89d7c50441d2491da1ab0a4d564dcc91f52ade85 Reviewed-by: Alex Blasche --- qmake/generators/mac/pbuilder_pbx.cpp | 2 +- qmake/generators/mac/pbuilder_pbx.h | 2 -- qmake/generators/makefile.cpp | 6 +++--- qmake/generators/makefile.h | 6 ++++++ qmake/generators/unix/unixmake.h | 2 +- qmake/generators/unix/unixmake2.cpp | 4 ++-- qmake/generators/win32/msvc_nmake.cpp | 8 ++++---- 7 files changed, 17 insertions(+), 13 deletions(-) (limited to 'qmake/generators') diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp index c2f6df7787..ec0a044361 100644 --- a/qmake/generators/mac/pbuilder_pbx.cpp +++ b/qmake/generators/mac/pbuilder_pbx.cpp @@ -644,7 +644,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) bool isObj = project->values(ProKey(*it + ".CONFIG")).indexOf("no_link") == -1; if (!isObj) { for (int i = 0; i < sources.size(); ++i) { - if (sources.at(i).keyName() == inputs.at(input)) { + if (sources.at(i).keyName() == inputs.at(input).toQStringView()) { duplicate = true; break; } diff --git a/qmake/generators/mac/pbuilder_pbx.h b/qmake/generators/mac/pbuilder_pbx.h index 1b90a3bbeb..9b85764caa 100644 --- a/qmake/generators/mac/pbuilder_pbx.h +++ b/qmake/generators/mac/pbuilder_pbx.h @@ -56,8 +56,6 @@ class ProjectBuilderMakefileGenerator : public UnixMakefileGenerator enum { SettingsAsList=0x01, SettingsNoQuote=0x02 }; inline QString writeSettings(const QString &var, const char *val, int flags=0, int indent_level=0) { return writeSettings(var, ProString(val), flags, indent_level); } - inline QString writeSettings(const QString &var, const QString &val, int flags=0, int indent_level=0) - { return writeSettings(var, ProString(val), flags, indent_level); } inline QString writeSettings(const QString &var, const ProString &val, int flags=0, int indent_level=0) { return writeSettings(var, ProStringList(val), flags, indent_level); } QString writeSettings(const QString &var, const ProStringList &vals, int flags=0, int indent_level=0); diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 5c61a3c65c..9d2d240bc2 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -2273,7 +2273,7 @@ QString MakefileGenerator::fullBuildArgs() //output QString ofile = fileFixify(Option::output.fileName()); - if(!ofile.isEmpty() && ofile != project->first("QMAKE_MAKEFILE")) + if (!ofile.isEmpty() && ofile != project->first("QMAKE_MAKEFILE").toQStringView()) ret += " -o " + escapeFilePath(ofile); //inputs @@ -2515,7 +2515,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QListmakefile); @@ -2696,7 +2696,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QListname)) continue; - QString out_directory_cdin = out_directory.isEmpty() ? "\n\t" + QString out_directory_cdin = out_directory.isEmpty() ? QString("\n\t") : "\n\tcd " + escapeFilePath(out_directory) + " && "; QString makefilein = " -f " + escapeFilePath(subtarget->makefile); diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h index bae32883b4..b80b6e3e08 100644 --- a/qmake/generators/makefile.h +++ b/qmake/generators/makefile.h @@ -140,10 +140,16 @@ protected: //escape virtual QString escapeFilePath(const QString &path) const = 0; ProString escapeFilePath(const ProString &path) const; + template + QString escapeFilePath(const QStringBuilder &path) const + { return escapeFilePath(QString(path)); } QStringList escapeFilePaths(const QStringList &paths) const; ProStringList escapeFilePaths(const ProStringList &paths) const; virtual QString escapeDependencyPath(const QString &path) const; ProString escapeDependencyPath(const ProString &path) const; + template + QString escapeDependencyPath(const QStringBuilder &path) const + { return escapeDependencyPath(QString(path)); } QStringList escapeDependencyPaths(const QStringList &paths) const; ProStringList escapeDependencyPaths(const ProStringList &paths) const; diff --git a/qmake/generators/unix/unixmake.h b/qmake/generators/unix/unixmake.h index 28302b4f15..1f32e4341f 100644 --- a/qmake/generators/unix/unixmake.h +++ b/qmake/generators/unix/unixmake.h @@ -50,7 +50,7 @@ protected: bool findLibraries(bool linkPrl, bool mergeLflags) override; QString escapeFilePath(const QString &path) const override; - ProString escapeFilePath(const ProString &path) const { return MakefileGenerator::escapeFilePath(path); } + using MakefileGenerator::escapeFilePath; QStringList &findDependencies(const QString &) override; void init() override; diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp index 0412b52813..19975bc8bb 100644 --- a/qmake/generators/unix/unixmake2.cpp +++ b/qmake/generators/unix/unixmake2.cpp @@ -134,7 +134,7 @@ UnixMakefileGenerator::writeSubTargets(QTextStream &t, QListmakefile) + " distdir DISTDIR=$(DISTDIR)" + escapeFilePath(dist_directory); @@ -749,7 +749,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t) (!isShallowBundle ? (isFramework ? ("Versions/" + project->first("QMAKE_FRAMEWORK_VERSION") + "/Resources/") - : "Contents/") + : QString("Contents/")) : QString()) + "Info.plist"; bundledFiles << info_plist_out; diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp index 2fb24201bd..73e84a3269 100644 --- a/qmake/generators/win32/msvc_nmake.cpp +++ b/qmake/generators/win32/msvc_nmake.cpp @@ -86,8 +86,8 @@ QString NmakeMakefileGenerator::defaultInstall(const QString &t) if (project->isActiveConfig("debug_info")) { if (t == "dlltarget" || project->values(ProKey(t + ".CONFIG")).indexOf("no_dll") == -1) { - const QFileInfo targetFileInfo = project->first("DESTDIR") + project->first("TARGET") - + project->first("TARGET_EXT"); + const QFileInfo targetFileInfo(project->first("DESTDIR") + project->first("TARGET") + + project->first("TARGET_EXT")); const QString pdb_target = targetFileInfo.completeBaseName() + ".pdb"; QString src_targ = (project->isEmpty("DESTDIR") ? QString("$(DESTDIR)") : project->first("DESTDIR")) + pdb_target; QString dst_targ = filePrefixRoot(root, fileFixify(targetdir + pdb_target, FileFixifyAbsolute)); @@ -245,8 +245,8 @@ void NmakeMakefileGenerator::init() project->values("PRECOMPILED_PCH_C") = ProStringList(precompPchC); } - const QFileInfo targetFileInfo = project->first("DESTDIR") + project->first("TARGET") - + project->first("TARGET_EXT"); + const QFileInfo targetFileInfo(project->first("DESTDIR") + project->first("TARGET") + + project->first("TARGET_EXT")); const ProString targetBase = targetFileInfo.path() + '/' + targetFileInfo.completeBaseName(); if (project->first("TEMPLATE") == "lib" && project->isActiveConfig("shared")) { project->values("QMAKE_CLEAN").append(targetBase + ".exp"); -- cgit v1.2.3