diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2021-11-03 17:16:11 +0300 |
---|---|---|
committer | Ivan Komissarov <abbapoh@gmail.com> | 2021-11-03 17:16:11 +0300 |
commit | addb0dc30b5866743c7574770630b5a0252306d4 (patch) | |
tree | 44df80c4ee10d3506f8d5ed74e1553d3cd5e82df /src | |
parent | 96d7358c6bd222a70d3a945e6f56a623364a4e2c (diff) | |
parent | ae937f07673aa95b67218e4be36a38e4438c0171 (diff) |
Merge branch '1.21' into master
Change-Id: I27ad0920ab12443c8e2c744e3509bce28607c3f0
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/corelib/jsextensions/pkgconfigjs.cpp | 9 | ||||
-rw-r--r-- | src/lib/corelib/tools/settingscreator.cpp | 31 | ||||
-rw-r--r-- | src/lib/pkgconfig/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/lib/pkgconfig/pcpackage.h | 2 | ||||
-rw-r--r-- | src/lib/pkgconfig/pcparser.cpp | 6 | ||||
-rw-r--r-- | src/lib/pkgconfig/pkgconfig.cpp | 5 | ||||
-rw-r--r-- | src/lib/pkgconfig/pkgconfig.qbs | 2 | ||||
-rw-r--r-- | src/lib/pkgconfig/use_pkgconfig.pri | 2 | ||||
-rw-r--r-- | src/lib/scriptengine/scriptengine.pro | 5 | ||||
-rw-r--r-- | src/lib/scriptengine/use_scriptengine.pri | 4 | ||||
-rw-r--r-- | src/shared/variant/CMakeLists.txt | 8 |
11 files changed, 31 insertions, 45 deletions
diff --git a/src/lib/corelib/jsextensions/pkgconfigjs.cpp b/src/lib/corelib/jsextensions/pkgconfigjs.cpp index 3bace6f06..59aa3a970 100644 --- a/src/lib/corelib/jsextensions/pkgconfigjs.cpp +++ b/src/lib/corelib/jsextensions/pkgconfigjs.cpp @@ -62,6 +62,14 @@ template<typename C, typename F> QVariantList convert(const C &c, F &&f) return result; } +QVariantMap variablesMapToMap(const PcPackage::VariablesMap &variables) +{ + QVariantMap result; + for (const auto &item: variables) + result.insert(QString::fromStdString(item.first), QString::fromStdString(item.second)); + return result; +} + QVariantMap packageToMap(const PcPackage &package) { QVariantMap result; @@ -127,6 +135,7 @@ QVariantMap packageToMap(const PcPackage &package) result[QStringLiteral("requiresPrivate")] = convert(package.requiresPrivate, requiredVersionToMap); result[QStringLiteral("conflicts")] = convert(package.conflicts, requiredVersionToMap); + result[QStringLiteral("variables")] = variablesMapToMap(package.variables); return result; }; diff --git a/src/lib/corelib/tools/settingscreator.cpp b/src/lib/corelib/tools/settingscreator.cpp index 3fdaf0bc3..455e35b34 100644 --- a/src/lib/corelib/tools/settingscreator.cpp +++ b/src/lib/corelib/tools/settingscreator.cpp @@ -84,16 +84,6 @@ void SettingsCreator::migrate() QString oldSettingsDir = m_settingsBaseDir; if (thePredecessor.isValid()) oldSettingsDir.append(QLatin1String("/qbs/")).append(thePredecessor.toString()); - QString oldProfilesDir = oldSettingsDir; - if (!thePredecessor.isValid()) - oldProfilesDir += QLatin1String("/qbs"); - oldProfilesDir += QLatin1String("/profiles"); - const QString newProfilesDir = m_newSettingsDir + QLatin1String("/profiles"); - QString errorMessage; - if (QFileInfo(oldProfilesDir).exists() - && !copyFileRecursion(oldProfilesDir, newProfilesDir, false, true, &errorMessage)) { - qWarning() << "Error in settings migration: " << errorMessage; - } const QString oldSettingsFilePath = oldSettingsDir + QLatin1Char('/') + m_settingsFileName; if (QFileInfo(oldSettingsFilePath).exists() && (!QDir::root().mkpath(m_newSettingsDir) @@ -102,28 +92,7 @@ void SettingsCreator::migrate() << "to" << m_newSettingsFilePath; } - // Adapt all paths in settings that point to the old location. At the time of this writing, - // that's only preferences.qbsSearchPaths as written by libqtprofilesetup, but we don't want - // to hardcode that here. m_settings = std::make_unique<QSettings>(m_newSettingsFilePath, format()); - const auto allKeys = m_settings->allKeys(); - for (const QString &key : allKeys) { - QVariant v = m_settings->value(key); - if (v.userType() == QMetaType::QString) { - QString s = v.toString(); - if (s.contains(oldProfilesDir)) - m_settings->setValue(key, s.replace(oldProfilesDir, newProfilesDir)); - } else if (v.userType() == QMetaType::QStringList) { - const QStringList oldList = v.toStringList(); - QStringList newList; - for (const QString &oldString : oldList) { - QString newString = oldString; - newList << newString.replace(oldProfilesDir, newProfilesDir); - } - if (newList != oldList) - m_settings->setValue(key, newList); - } - } } void SettingsCreator::createQSettings() diff --git a/src/lib/pkgconfig/CMakeLists.txt b/src/lib/pkgconfig/CMakeLists.txt index e64d934c8..c82edac16 100644 --- a/src/lib/pkgconfig/CMakeLists.txt +++ b/src/lib/pkgconfig/CMakeLists.txt @@ -15,7 +15,7 @@ else() endif() set(QBS_PKGCONFIG_PUBLIC_DEPENDS "") -if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0) set(QBS_PKGCONFIG_PUBLIC_DEPENDS "stdc++fs") endif() diff --git a/src/lib/pkgconfig/pcpackage.h b/src/lib/pkgconfig/pcpackage.h index 340a4698f..9d86816aa 100644 --- a/src/lib/pkgconfig/pcpackage.h +++ b/src/lib/pkgconfig/pcpackage.h @@ -114,7 +114,7 @@ public: std::vector<RequiredVersion> conflicts; using VariablesMap = std::map<std::string, std::string, std::less<>>; - VariablesMap vars; + VariablesMap variables; bool uninstalled{false}; diff --git a/src/lib/pkgconfig/pcparser.cpp b/src/lib/pkgconfig/pcparser.cpp index b3ba57c3d..20e92a600 100644 --- a/src/lib/pkgconfig/pcparser.cpp +++ b/src/lib/pkgconfig/pcparser.cpp @@ -424,11 +424,11 @@ try #if HAS_STD_FILESYSTEM const auto fsPath = std::filesystem::path(path); package.filePath = fsPath.generic_string(); - package.vars["pcfiledir"] = fsPath.parent_path().generic_string(); + package.variables["pcfiledir"] = fsPath.parent_path().generic_string(); #else QFileInfo fileInfo(QString::fromStdString(path)); package.filePath = fileInfo.absoluteFilePath().toStdString(); - package.vars["pcfiledir"] = fileInfo.absolutePath().toStdString(); + package.variables["pcfiledir"] = fileInfo.absolutePath().toStdString(); #endif std::string line; @@ -764,7 +764,7 @@ void PcParser::parseLine(PcPackage &pkg, std::string_view str) // ignore this feature for now const auto value = trimAndSubstitute(pkg, str); - if (!pkg.vars.insert({std::string(tag), value}).second) + if (!pkg.variables.insert({std::string(tag), value}).second) raizeDuplicateVariableException(pkg, tag); } } diff --git a/src/lib/pkgconfig/pkgconfig.cpp b/src/lib/pkgconfig/pkgconfig.cpp index f017b365c..f26d3afba 100644 --- a/src/lib/pkgconfig/pkgconfig.cpp +++ b/src/lib/pkgconfig/pkgconfig.cpp @@ -238,8 +238,8 @@ std::string_view PkgConfig::packageGetVariable(const PcPackage &pkg, std::string } if (varval.empty()) { - const auto it = pkg.vars.find(var); - varval = (it != pkg.vars.end()) ? it->second : std::string_view(); + const auto it = pkg.variables.find(var); + varval = (it != pkg.variables.end()) ? it->second : std::string_view(); } return varval; @@ -391,6 +391,7 @@ PkgConfig::Packages PkgConfig::mergeDependencies(const PkgConfig::Packages &pack result.version = package.version; result.description = package.description; result.url = package.url; + result.variables = package.variables; auto allDependencies = package.requiresPublic; if (m_options.staticMode) diff --git a/src/lib/pkgconfig/pkgconfig.qbs b/src/lib/pkgconfig/pkgconfig.qbs index 0be5065f5..a32eb775b 100644 --- a/src/lib/pkgconfig/pkgconfig.qbs +++ b/src/lib/pkgconfig/pkgconfig.qbs @@ -60,7 +60,7 @@ QbsStaticLibrary { Depends { name: "qbsvariant" } cpp.defines: exportingProduct.publicDefines cpp.staticLibraries: { - if (qbs.toolchainType === "gcc" && cpp.compilerVersionMajor === 7) + if (qbs.toolchainType === "gcc" && cpp.compilerVersionMajor < 9) return ["stdc++fs"]; return []; } diff --git a/src/lib/pkgconfig/use_pkgconfig.pri b/src/lib/pkgconfig/use_pkgconfig.pri index e0e485e46..ad64cea6d 100644 --- a/src/lib/pkgconfig/use_pkgconfig.pri +++ b/src/lib/pkgconfig/use_pkgconfig.pri @@ -33,7 +33,7 @@ gcc { isEmpty(COMPILER_VERSION) { COMPILER_VERSION = $$system($$QMAKE_CXX " -dumpversion") COMPILER_MAJOR_VERSION = $$str_member($$COMPILER_VERSION) - equals(COMPILER_MAJOR_VERSION, 7) { + lessThan(COMPILER_MAJOR_VERSION, 9) { LIBS += -lstdc++fs } } diff --git a/src/lib/scriptengine/scriptengine.pro b/src/lib/scriptengine/scriptengine.pro index b1e6e8bad..34fd5a5f8 100644 --- a/src/lib/scriptengine/scriptengine.pro +++ b/src/lib/scriptengine/scriptengine.pro @@ -1,9 +1,12 @@ TARGET = qbsscriptengine include(../library.pri) -INSTALLS = QT = core-private +versionAtLeast(QT_VERSION, 6.0.0) { + QT += core5compat +} + DEFINES += QT_BUILD_SCRIPT_LIB DEFINES += JSC=QTJSC jscyyparse=qtjscyyparse jscyylex=qtjscyylex jscyyerror=qtjscyyerror WTF=QTWTF diff --git a/src/lib/scriptengine/use_scriptengine.pri b/src/lib/scriptengine/use_scriptengine.pri index e763c9d86..ff1bb1343 100644 --- a/src/lib/scriptengine/use_scriptengine.pri +++ b/src/lib/scriptengine/use_scriptengine.pri @@ -4,6 +4,10 @@ QBSLIBDIR = $$shadowed($$PWD/../../../$${QBS_LIBRARY_DIRNAME}) } + versionAtLeast(QT_VERSION, 6.0.0) { + QT *= core5compat + } + LIBS += -L$$QBSLIBDIR macos { LIBS += -lqbsscriptengine diff --git a/src/shared/variant/CMakeLists.txt b/src/shared/variant/CMakeLists.txt index 5b2ccfb11..ac73231d4 100644 --- a/src/shared/variant/CMakeLists.txt +++ b/src/shared/variant/CMakeLists.txt @@ -1,4 +1,4 @@ -add_qbs_library(qbsvariant - INTERFACE - SOURCES variant.h variant.hpp - ) +add_library(qbsvariant INTERFACE) +target_include_directories( + qbsvariant + INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/>) |