diff options
-rw-r--r-- | qbs-resources/imports/QbsProduct.qbs | 1 | ||||
-rw-r--r-- | src/app/qbs-setup-qt/setupqt.cpp | 8 | ||||
-rw-r--r-- | src/app/qbs-setup-toolchains/probe.cpp | 12 | ||||
-rw-r--r-- | src/app/qbs-setup-toolchains/vsenvironmentdetector.cpp | 3 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/qtmocscanner.cpp | 3 | ||||
-rw-r--r-- | src/lib/corelib/corelib.qbs | 1 | ||||
-rw-r--r-- | src/lib/corelib/language/builtindeclarations.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/language.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/language/projectresolver.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/scriptengine.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/tst_language.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/value.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/tools/shellutils.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/tools/tst_tools.cpp | 3 | ||||
-rw-r--r-- | src/lib/library.pri | 1 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtmoduleinfo.cpp | 12 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.cpp | 46 |
17 files changed, 61 insertions, 47 deletions
diff --git a/qbs-resources/imports/QbsProduct.qbs b/qbs-resources/imports/QbsProduct.qbs index daf2e6efa..80fe5601d 100644 --- a/qbs-resources/imports/QbsProduct.qbs +++ b/qbs-resources/imports/QbsProduct.qbs @@ -4,5 +4,6 @@ import QbsFunctions Product { Depends { name: "Qt.core" } property string minimumQtVersion: "5.1.0" + cpp.defines: ["QT_NO_CAST_FROM_ASCII"] condition: QbsFunctions.versionIsAtLeast(Qt.core.version, minimumQtVersion) } diff --git a/src/app/qbs-setup-qt/setupqt.cpp b/src/app/qbs-setup-qt/setupqt.cpp index de2a2e512..19dddd082 100644 --- a/src/app/qbs-setup-qt/setupqt.cpp +++ b/src/app/qbs-setup-qt/setupqt.cpp @@ -225,12 +225,12 @@ QtEnvironment SetupQt::fetchEnvironment(const QString &qmakePath) // Work around QTBUG-28792. // The value of QMAKESPEC_ORIGINAL is wrong for MinGW packages. Y u h8 me? const QRegExp rex(QLatin1String("\\binclude\\(([^)]+)/qmake\\.conf\\)")); - if (rex.indexIn(fileContent) != -1) + if (rex.indexIn(QString::fromLocal8Bit(fileContent)) != -1) qtEnvironment.mkspecPath = QDir::cleanPath(baseDirPath + rex.cap(1)); } } else { - qtEnvironment.mkspecPath - = QFileInfo(qtEnvironment.mkspecBasePath + "/default").symLinkTarget(); + qtEnvironment.mkspecPath = QFileInfo(qtEnvironment.mkspecBasePath + + QLatin1String("/default")).symLinkTarget(); } qtEnvironment.mkspecName = qtEnvironment.mkspecPath; int idx = qtEnvironment.mkspecName.lastIndexOf(QLatin1Char('/')); @@ -260,7 +260,7 @@ QtEnvironment SetupQt::fetchEnvironment(const QString &qmakePath) static bool isToolchainProfileKey(const QString &key) { // The Qt profile setup itself sets cpp.minimum*Version for some systems. - return key.startsWith(QLatin1String("cpp.")) && !key.startsWith("cpp.minimum"); + return key.startsWith(QLatin1String("cpp.")) && !key.startsWith(QLatin1String("cpp.minimum")); } void SetupQt::saveToQbsSettings(const QString &qtVersionName, const QtEnvironment &qtEnvironment, diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp index 0ae9f6c1f..531bbf0c1 100644 --- a/src/app/qbs-setup-toolchains/probe.cpp +++ b/src/app/qbs-setup-toolchains/probe.cpp @@ -124,12 +124,12 @@ static void setupCompilerPathByLanguage(Profile &profile, const QStringList &too const QString &toolchainInstallPath, const QString &toolchainPrefix) { QVariantMap m; - if (toolchainTypes.contains("clang")) { - m["c"] = m["objc"] = QLatin1String("clang"); - m["cpp"] = m["objcpp"] = QLatin1String("clang++"); - } else if (toolchainTypes.contains("gcc")) { - m["c"] = m["objc"] = QLatin1String("gcc"); - m["cpp"] = m["objcpp"] = QLatin1String("g++"); + if (toolchainTypes.contains(QLatin1String("clang"))) { + m[QLatin1String("c")] = m[QLatin1String("objc")] = QLatin1String("clang"); + m[QLatin1String("cpp")] = m[QLatin1String("objcpp")] = QLatin1String("clang++"); + } else if (toolchainTypes.contains(QLatin1String("gcc"))) { + m[QLatin1String("c")] = m[QLatin1String("objc")] = QLatin1String("gcc"); + m[QLatin1String("cpp")] = m[QLatin1String("objcpp")] = QLatin1String("g++"); } else { qDebug("WARNING: unexpected toolchain %s", qPrintable(toJSLiteral(toolchainTypes))); return; diff --git a/src/app/qbs-setup-toolchains/vsenvironmentdetector.cpp b/src/app/qbs-setup-toolchains/vsenvironmentdetector.cpp index bc78c5a7a..7fa6dfef5 100644 --- a/src/app/qbs-setup-toolchains/vsenvironmentdetector.cpp +++ b/src/app/qbs-setup-toolchains/vsenvironmentdetector.cpp @@ -125,7 +125,8 @@ static QString vcArchitecture(const QString &arch) void VsEnvironmentDetector::writeBatchFile(QIODevice *device, const QString &vcvarsallbat) const { - const QStringList varnames = QStringList() << "PATH" << "INCLUDE" << "LIB"; + const QStringList varnames = QStringList() << QLatin1String("PATH") + << QLatin1String("INCLUDE") << QLatin1String("LIB"); QTextStream s(device); s << "@echo off" << endl; foreach (const QString &architecture, m_msvc->architectures) { diff --git a/src/lib/corelib/buildgraph/qtmocscanner.cpp b/src/lib/corelib/buildgraph/qtmocscanner.cpp index e552f06fa..78a0a8ae0 100644 --- a/src/lib/corelib/buildgraph/qtmocscanner.cpp +++ b/src/lib/corelib/buildgraph/qtmocscanner.cpp @@ -122,7 +122,8 @@ void QtMocScanner::findIncludedMocCppFiles() = runScanner(m_cppScanner, artifact, m_scanResultCache); foreach (const ScanResultCache::Dependency &dependency, scanResult.deps) { QString includedFilePath = dependency.filePath(); - if (includedFilePath.startsWith("moc_") && includedFilePath.endsWith(".cpp")) { + if (includedFilePath.startsWith(QLatin1String("moc_")) + && includedFilePath.endsWith(QLatin1String(".cpp"))) { if (m_logger.traceEnabled()) m_logger.qbsTrace() << "[QtMocScanner] " << artifact->fileName() << " includes " << includedFilePath; diff --git a/src/lib/corelib/corelib.qbs b/src/lib/corelib/corelib.qbs index a5c1ab652..1c1515bc8 100644 --- a/src/lib/corelib/corelib.qbs +++ b/src/lib/corelib/corelib.qbs @@ -395,6 +395,7 @@ QbsLibrary { Group { condition: project.enableUnitTests name: "tests" + cpp.defines: outer.filter(function(def) { return def !== "QT_NO_CAST_FROM_ASCII"; }) files: [ "buildgraph/tst_buildgraph.cpp", "buildgraph/tst_buildgraph.h", diff --git a/src/lib/corelib/language/builtindeclarations.cpp b/src/lib/corelib/language/builtindeclarations.cpp index 1cb0b9b14..c19950cc2 100644 --- a/src/lib/corelib/language/builtindeclarations.cpp +++ b/src/lib/corelib/language/builtindeclarations.cpp @@ -298,7 +298,7 @@ void BuiltinDeclarations::addProductItem() item << buildDirProperty(); item << decl; decl = PropertyDeclaration(QLatin1String("destinationDirectory"), PropertyDeclaration::String); - decl.setInitialValueSource("buildDirectory"); + decl.setInitialValueSource(QStringLiteral("buildDirectory")); item << decl; item << PropertyDeclaration(QLatin1String("consoleApplication"), PropertyDeclaration::Boolean); diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp index 203d5c0af..b7b9fbff1 100644 --- a/src/lib/corelib/language/language.cpp +++ b/src/lib/corelib/language/language.cpp @@ -567,8 +567,8 @@ static bool findModuleMapRecursively_impl(const QVariantMap &cfg, const QString *result = it.value().toMap(); return true; } - if (findModuleMapRecursively_impl(it.value().toMap().value("modules").toMap(), moduleName, - result)) { + if (findModuleMapRecursively_impl(it.value().toMap().value(QStringLiteral("modules")).toMap(), + moduleName, result)) { return true; } } diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index 9ea7b3cd0..66d777fd2 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -665,7 +665,7 @@ void ProjectResolver::resolveRule(Item *item, ProjectContext *projectContext) throw ErrorInfo(Tr::tr("The Rule.outputArtifacts script is not allowed in rules " "that contain Artifact items."), item->location()); - rule->outputFileTags = m_evaluator->fileTagsValue(item, "outputFileTags"); + rule->outputFileTags = m_evaluator->fileTagsValue(item, QStringLiteral("outputFileTags")); if (rule->outputFileTags.isEmpty()) throw ErrorInfo(Tr::tr("Rule.outputFileTags must be specified if " "Rule.outputArtifacts is specified."), diff --git a/src/lib/corelib/language/scriptengine.cpp b/src/lib/corelib/language/scriptengine.cpp index 65094d47b..7cda02a14 100644 --- a/src/lib/corelib/language/scriptengine.cpp +++ b/src/lib/corelib/language/scriptengine.cpp @@ -315,7 +315,7 @@ void ScriptEngine::importProgram(const QScriptProgram &program, const QScriptVal static QString findExtensionDir(const QStringList &searchPaths, const QString &extensionPath) { foreach (const QString &searchPath, searchPaths) { - const QString dirPath = searchPath + "/imports/" + extensionPath; + const QString dirPath = searchPath + QStringLiteral("/imports/") + extensionPath; QFileInfo fi(dirPath); if (fi.exists() && fi.isDir()) return dirPath; diff --git a/src/lib/corelib/language/tst_language.cpp b/src/lib/corelib/language/tst_language.cpp index 2b3ea11c8..0f399e800 100644 --- a/src/lib/corelib/language/tst_language.cpp +++ b/src/lib/corelib/language/tst_language.cpp @@ -28,6 +28,8 @@ ** ****************************************************************************/ +#undef QT_NO_CAST_FROM_ASCII // I am qmake, and I approve this hack. + #include "tst_language.h" #include <language/evaluator.h> diff --git a/src/lib/corelib/language/value.cpp b/src/lib/corelib/language/value.cpp index 2d9b493bf..cd354ae13 100644 --- a/src/lib/corelib/language/value.cpp +++ b/src/lib/corelib/language/value.cpp @@ -69,8 +69,8 @@ QString JSSourceValue::sourceCodeForEvaluation() const return m_sourceCode.toString(); // rewrite blocks to be able to use return statements in property assignments - static const QString prefix = "(function()"; - static const QString suffix = ")()"; + static const QString prefix = QStringLiteral("(function()"); + static const QString suffix = QStringLiteral(")()"); return prefix + m_sourceCode.toString() + suffix; } diff --git a/src/lib/corelib/tools/shellutils.cpp b/src/lib/corelib/tools/shellutils.cpp index d6dbdfd00..a72b1939b 100644 --- a/src/lib/corelib/tools/shellutils.cpp +++ b/src/lib/corelib/tools/shellutils.cpp @@ -43,7 +43,7 @@ QString shellInterpreter(const QString &filePath) { QTextStream ts(&file); const QString shebang = ts.readLine(); if (shebang.startsWith(QLatin1String("#!"))) { - return (shebang.mid(2).split(QRegExp("\\s"), + return (shebang.mid(2).split(QRegExp(QLatin1String("\\s")), QString::SkipEmptyParts) << QString()).first(); } } diff --git a/src/lib/corelib/tools/tst_tools.cpp b/src/lib/corelib/tools/tst_tools.cpp index 8c6f0a13e..4d1686f84 100644 --- a/src/lib/corelib/tools/tst_tools.cpp +++ b/src/lib/corelib/tools/tst_tools.cpp @@ -27,6 +27,9 @@ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ****************************************************************************/ + +#undef QT_NO_CAST_FROM_ASCII // I am qmake, and I approve this hack. + #include "tst_tools.h" #include "buildoptions.h" diff --git a/src/lib/library.pri b/src/lib/library.pri index 0420eaa76..d1bda77e4 100644 --- a/src/lib/library.pri +++ b/src/lib/library.pri @@ -11,6 +11,7 @@ CONFIG(static, static|shared) { } else { DEFINES += QBS_LIBRARY } +DEFINES += QT_NO_CAST_FROM_ASCII INCLUDEPATH += $${PWD}/../ contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols win32:CONFIG(debug, debug|release):TARGET = $${TARGET}d diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp index 8e073355a..7ae49fa4a 100644 --- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp +++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp @@ -171,9 +171,10 @@ void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv, bool debugBuild, if (debugBuild) { if (!qtEnv.buildVariant.contains(QLatin1String("debug"))) return; - const QStringList modulesNeverBuiltAsDebug = QStringList() << "bootstrap" << "qmldevtools"; + const QStringList modulesNeverBuiltAsDebug = QStringList() + << QLatin1String("bootstrap") << QLatin1String("qmldevtools"); foreach (const QString &m, modulesNeverBuiltAsDebug) { - if (qbsName == m || qbsName == m + "-private") + if (qbsName == m || qbsName == m + QLatin1String("-private")) return; } } else if (!qtEnv.buildVariant.contains(QLatin1String("release"))) { @@ -290,8 +291,9 @@ bool QtModuleInfo::isFramework(const QtEnvironment &qtEnv) const if (!qtEnv.frameworkBuild || isStaticLibrary) return false; const QStringList modulesNeverBuiltAsFrameworks = QStringList() - << "bootstrap" << "openglextensions" << "platformsupport" << "qmldevtools" << "uitools" - << "harfbuzzng"; + << QLatin1String("bootstrap") << QLatin1String("openglextensions") + << QLatin1String("platformsupport") << QLatin1String("qmldevtools") + << QLatin1String("uitools") << QLatin1String("harfbuzzng"); return !modulesNeverBuiltAsFrameworks.contains(qbsName); } @@ -368,7 +370,7 @@ QList<QtModuleInfo> allQt4Modules(const QtEnvironment &qtEnvironment) << QtModuleInfo(QLatin1String("QtXml"), QLatin1String("xml-private"), QStringList() << QLatin1String("xml")) << QtModuleInfo(QLatin1String("QtXmlPatterns"), QLatin1String("xmlpatterns"), - QStringList() << "network") + QStringList() << QLatin1String("network")) << QtModuleInfo(QLatin1String("QtXmlPatterns"), QLatin1String("xmlpatterns-private"), QStringList() << QLatin1String("xmlpatterns")) diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp index 087ca1d78..176bcce01 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.cpp +++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp @@ -236,10 +236,10 @@ static void createModules(Profile &profile, Settings *settings, static QString guessMinimumWindowsVersion(const QtEnvironment &qt) { - if (qt.mkspecName.startsWith("winrt-")) + if (qt.mkspecName.startsWith(QLatin1String("winrt-"))) return QLatin1String("6.2"); - if (!qt.mkspecName.startsWith("win32-")) + if (!qt.mkspecName.startsWith(QLatin1String("win32-"))) return QString(); if (qt.architecture == QLatin1String("x86_64") @@ -312,18 +312,20 @@ void doSetupQtProfile(const QString &profileName, Settings *settings, Profile profile(profileName, settings); profile.removeProfile(); const QString settingsTemplate(QLatin1String("Qt.core.%1")); - profile.setValue(settingsTemplate.arg("config"), qtEnvironment.configItems); - profile.setValue(settingsTemplate.arg("qtConfig"), qtEnvironment.qtConfigItems); - profile.setValue(settingsTemplate.arg("binPath"), qtEnvironment.binaryPath); - profile.setValue(settingsTemplate.arg("libPath"), qtEnvironment.libraryPath); - profile.setValue(settingsTemplate.arg("pluginPath"), qtEnvironment.pluginPath); - profile.setValue(settingsTemplate.arg("incPath"), qtEnvironment.includePath); - profile.setValue(settingsTemplate.arg("mkspecPath"), qtEnvironment.mkspecPath); - profile.setValue(settingsTemplate.arg("docPath"), qtEnvironment.documentationPath); - profile.setValue(settingsTemplate.arg("version"), qtEnvironment.qtVersion); - profile.setValue(settingsTemplate.arg("libInfix"), qtEnvironment.qtLibInfix); - profile.setValue(settingsTemplate.arg("buildVariant"), qtEnvironment.buildVariant); // TODO: Remove in 1.5 - profile.setValue(settingsTemplate.arg("availableBuildVariants"), qtEnvironment.buildVariant); + profile.setValue(settingsTemplate.arg(QLatin1String("config")), qtEnvironment.configItems); + profile.setValue(settingsTemplate.arg(QLatin1String("qtConfig")), qtEnvironment.qtConfigItems); + profile.setValue(settingsTemplate.arg(QLatin1String("binPath")), qtEnvironment.binaryPath); + profile.setValue(settingsTemplate.arg(QLatin1String("libPath")), qtEnvironment.libraryPath); + profile.setValue(settingsTemplate.arg(QLatin1String("pluginPath")), qtEnvironment.pluginPath); + profile.setValue(settingsTemplate.arg(QLatin1String("incPath")), qtEnvironment.includePath); + profile.setValue(settingsTemplate.arg(QLatin1String("mkspecPath")), qtEnvironment.mkspecPath); + profile.setValue(settingsTemplate.arg(QLatin1String("docPath")), + qtEnvironment.documentationPath); + profile.setValue(settingsTemplate.arg(QLatin1String("version")), qtEnvironment.qtVersion); + profile.setValue(settingsTemplate.arg(QLatin1String("libInfix")), qtEnvironment.qtLibInfix); + profile.setValue(settingsTemplate.arg(QLatin1String("buildVariant")), qtEnvironment.buildVariant); // TODO: Remove in 1.5 + profile.setValue(settingsTemplate.arg(QLatin1String("availableBuildVariants")), + qtEnvironment.buildVariant); profile.setValue(settingsTemplate.arg(QLatin1String("staticBuild")), staticBuild); // Set the minimum operating system versions appropriate for this Qt version @@ -336,20 +338,20 @@ void doSetupQtProfile(const QString &profileName, Settings *settings, qtEnvironment.qtPatchVersion); qtEnvironment.entryPointLibsDebug = fillEntryPointLibs(qtEnvironment, qtVersion, true); qtEnvironment.entryPointLibsRelease = fillEntryPointLibs(qtEnvironment, qtVersion, false); - } else if (qtEnvironment.mkspecPath.contains("macx")) { - profile.setValue(settingsTemplate.arg("frameworkBuild"), qtEnvironment.frameworkBuild); + } else if (qtEnvironment.mkspecPath.contains(QLatin1String("macx"))) { + profile.setValue(settingsTemplate.arg(QLatin1String("frameworkBuild")), qtEnvironment.frameworkBuild); if (qtEnvironment.qtMajorVersion >= 5) { osxVersion = QLatin1String("10.6"); } else if (qtEnvironment.qtMajorVersion == 4 && qtEnvironment.qtMinorVersion >= 6) { QDir qconfigDir; if (qtEnvironment.frameworkBuild) { qconfigDir.setPath(qtEnvironment.libraryPath); - qconfigDir.cd("QtCore.framework/Headers"); + qconfigDir.cd(QLatin1String("QtCore.framework/Headers")); } else { qconfigDir.setPath(qtEnvironment.includePath); - qconfigDir.cd("Qt"); + qconfigDir.cd(QLatin1String("Qt")); } - QFile qconfig(qconfigDir.absoluteFilePath("qconfig.h")); + QFile qconfig(qconfigDir.absoluteFilePath(QLatin1String("qconfig.h"))); if (qconfig.open(QIODevice::ReadOnly)) { bool qtCocoaBuild = false; QTextStream ts(&qconfig); @@ -373,14 +375,14 @@ void doSetupQtProfile(const QString &profileName, Settings *settings, } } - if (qtEnvironment.qtConfigItems.contains("c++11")) + if (qtEnvironment.qtConfigItems.contains(QLatin1String("c++11"))) osxVersion = QLatin1String("10.7"); } - if (qtEnvironment.mkspecPath.contains("ios") && qtEnvironment.qtMajorVersion >= 5) + if (qtEnvironment.mkspecPath.contains(QLatin1String("ios")) && qtEnvironment.qtMajorVersion >= 5) iosVersion = QLatin1String("5.0"); - if (qtEnvironment.mkspecPath.contains("android")) { + if (qtEnvironment.mkspecPath.contains(QLatin1String("android"))) { if (qtEnvironment.qtMajorVersion >= 5) androidVersion = QLatin1String("2.3"); else if (qtEnvironment.qtMajorVersion == 4 && qtEnvironment.qtMinorVersion >= 8) |