diff options
Diffstat (limited to 'src/plugins')
31 files changed, 202 insertions, 480 deletions
diff --git a/src/plugins/generator/clangcompilationdb/clangcompilationdb.pri b/src/plugins/generator/clangcompilationdb/clangcompilationdb.pri deleted file mode 100644 index 7c9a71129..000000000 --- a/src/plugins/generator/clangcompilationdb/clangcompilationdb.pri +++ /dev/null @@ -1 +0,0 @@ -qbsPluginTarget = clangcompilationdbgenerator diff --git a/src/plugins/generator/clangcompilationdb/clangcompilationdb.pro b/src/plugins/generator/clangcompilationdb/clangcompilationdb.pro deleted file mode 100644 index 1b5342598..000000000 --- a/src/plugins/generator/clangcompilationdb/clangcompilationdb.pro +++ /dev/null @@ -1,11 +0,0 @@ -include(clangcompilationdb.pri) -include(../../plugins.pri) - -QT = core - -HEADERS += \ - $$PWD/clangcompilationdbgenerator.h - -SOURCES += \ - $$PWD/clangcompilationdbgenerator.cpp \ - $$PWD/clangcompilationdbgeneratorplugin.cpp diff --git a/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp b/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp index fc1a36c96..dc5450967 100644 --- a/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp +++ b/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp @@ -115,12 +115,11 @@ QJsonObject ClangCompilationDatabaseGenerator::createEntry(const QString &filePa const QStringList arguments = QStringList() << ruleCommand.executable() << ruleCommand.arguments(); - const QJsonObject object = { + return QJsonObject{ { QStringLiteral("directory"), QJsonValue(workDir) }, { QStringLiteral("arguments"), QJsonArray::fromStringList(arguments) }, { QStringLiteral("file"), QJsonValue(filePath) } }; - return object; } void ClangCompilationDatabaseGenerator::writeProjectDatabase(const QString &filePath, diff --git a/src/plugins/generator/generator.pro b/src/plugins/generator/generator.pro deleted file mode 100644 index 4a3861321..000000000 --- a/src/plugins/generator/generator.pro +++ /dev/null @@ -1,6 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS += clangcompilationdb -SUBDIRS += makefilegenerator -SUBDIRS += visualstudio -SUBDIRS += iarew -SUBDIRS += keiluv diff --git a/src/plugins/generator/iarew/archs/mcs51/mcs51generalsettingsgroup_v10.cpp b/src/plugins/generator/iarew/archs/mcs51/mcs51generalsettingsgroup_v10.cpp index b0c4b9368..b3b68377f 100644 --- a/src/plugins/generator/iarew/archs/mcs51/mcs51generalsettingsgroup_v10.cpp +++ b/src/plugins/generator/iarew/archs/mcs51/mcs51generalsettingsgroup_v10.cpp @@ -95,17 +95,15 @@ struct TargetPageOptions final const QString core = IarewUtils::flagValue( flags, QStringLiteral("--core")) .toLower(); - if (core == QLatin1String("plain")) { + // If the core variant is not set, then choose the + // default value, CorePlain (see the compiler datasheet for + // '--core' option). + if (core == QLatin1String("plain") || core.isEmpty()) { cpuCore = TargetPageOptions::CorePlain; } else if (core == QLatin1String("extended1")) { cpuCore = TargetPageOptions::CoreExtended1; } else if (core == QLatin1String("extended2")) { cpuCore = TargetPageOptions::CoreExtended2; - } else { - // If the core variant is not set, then choose the - // default values (see the compiler datasheet for - // '--core' option). - cpuCore = TargetPageOptions::CorePlain; } const QString cm = IarewUtils::flagValue( @@ -119,7 +117,7 @@ struct TargetPageOptions final codeModel = TargetPageOptions::CodeModelFar; } else if (cm == QLatin1String("banked_ext2")) { codeModel = TargetPageOptions::CodeModelBankedExtended2; - } else { + } else if (cm.isEmpty()) { // If the code model is not set, then choose the // default values (see the compiler datasheet for // '--code_model' option). @@ -145,7 +143,7 @@ struct TargetPageOptions final dataModel = TargetPageOptions::DataModelFarGeneric; } else if (dm == QLatin1String("far")) { dataModel = TargetPageOptions::DataModelFar; - } else { + } else if (dm.isEmpty()) { // If the data model is not set, then choose the // default values (see the compiler datasheet for // '--data_model' option). @@ -172,26 +170,26 @@ struct TargetPageOptions final const QString constPlace = IarewUtils::flagValue( flags, QStringLiteral("--place_constants")) .toLower(); - if (constPlace == QLatin1String("data")) { + // If this option is not set, then choose the + // default value (see the compiler datasheet for + // '--place_constants' option). + if (constPlace == QLatin1String("data") || constPlace.isEmpty()) { constPlacement = TargetPageOptions::RamMemoryPlace; } else if (constPlace == QLatin1String("data_rom")) { constPlacement = TargetPageOptions::RomMemoryPlace; } else if (constPlace == QLatin1String("code")) { constPlacement = TargetPageOptions::CodeMemoryPlace; - } else { - // If this option is not set, then choose the - // default value (see the compiler datasheet for - // '--place_constants' option). - constPlacement = TargetPageOptions::RamMemoryPlace; } - const QString cc = IarewUtils::flagValue( flags, QStringLiteral("--calling_convention")).toLower(); if (cc == QLatin1String("data_overlay")) { callingConvention = TargetPageOptions::DataOverlayConvention; } else if (cc == QLatin1String("idata_overlay")) { callingConvention = TargetPageOptions::IDataOverlayConvention; - } else if (cc == QLatin1String("idata_reentrant")) { + } else if (cc == QLatin1String("idata_reentrant") || cc.isEmpty()) { + // If this option is not set, then choose the + // default value (see the compiler datasheet for + // '--calling_convention' option). callingConvention = TargetPageOptions::IDataReentrantConvention; } else if (cc == QLatin1String("pdata_reentrant")) { callingConvention = TargetPageOptions::PDataReentrantConvention; @@ -199,11 +197,6 @@ struct TargetPageOptions final callingConvention = TargetPageOptions::XDataReentrantConvention; } else if (cc == QLatin1String("ext_stack_reentrant")) { callingConvention = TargetPageOptions::ExtendedStackReentrantConvention; - } else { - // If this option is not set, then choose the - // default value (see the compiler datasheet for - // '--calling_convention' option). - callingConvention = TargetPageOptions::IDataReentrantConvention; } } @@ -237,7 +230,7 @@ struct TargetPageOptions final } const QString toolkitPath = IarewUtils::toolkitRootPath(qbsProduct); - for (const QVariant &configPath : qAsConst(configPaths)) { + for (const QVariant &configPath : std::as_const(configPaths)) { const QString fullConfigPath = configPath.toString(); // We interested only in a config paths shipped inside of a toolkit. if (!fullConfigPath.startsWith(toolkitPath, Qt::CaseInsensitive)) @@ -446,13 +439,12 @@ struct DptrPageOptions final case VisibilityIndex: if (part == QLatin1String("shadowed")) dptrVisibility = DptrPageOptions::DptrShadowed; - else if (part == QLatin1String("separate")) - dptrVisibility = DptrPageOptions::DptrSeparate; - else - // If this option is not set, then choose the + else if (part == QLatin1String("separate") || part.isEmpty()) { + // If this option is not set or set to "separate", then choose the // default value (see the compiler datasheet for // '--dptr' option). dptrVisibility = DptrPageOptions::DptrSeparate; + } break; case SwitchMethodIndex: if (part == QLatin1String("inc")) { @@ -647,30 +639,22 @@ struct LibraryOptionsPageOptions final Qt::CaseInsensitive)) { const QString prop = flag.split( QLatin1Char('=')).at(0).toLower(); + // see the compiler datasheet for the '_formatted_write' option. if (prop == QLatin1String("-e_large_write")) printfFormatter = LibraryOptionsPageOptions::PrintfLargeFormatter; else if (prop == QLatin1String("-e_medium_write")) printfFormatter = LibraryOptionsPageOptions::PrintfMediumFormatter; else if (prop == QLatin1String("-e_small_write")) printfFormatter = LibraryOptionsPageOptions::PrintfSmallFormatter; - else - // If this option is not set, then choose the - // default value (see the compiler datasheet for - // '_formatted_write' option). - printfFormatter = LibraryOptionsPageOptions::PrintfMediumFormatter; } else if (flag.endsWith(QLatin1String("_formatted_read"), Qt::CaseInsensitive)) { const QString prop = flag.split(QLatin1Char('=')) .at(0).toLower(); + // see the compiler datasheet for the '_formatted_read' option. if (prop == QLatin1String("-e_large_read")) scanfFormatter = LibraryOptionsPageOptions::ScanfLargeFormatter; else if (prop == QLatin1String("-e_medium_read")) scanfFormatter = LibraryOptionsPageOptions::ScanfMediumFormatter; - else - // If this option is not set, then choose the - // default value (see the compiler datasheet for - // '_formatted_read' option). - scanfFormatter = LibraryOptionsPageOptions::ScanfMediumFormatter; } } } diff --git a/src/plugins/generator/iarew/archs/msp430/msp430generalsettingsgroup_v7.cpp b/src/plugins/generator/iarew/archs/msp430/msp430generalsettingsgroup_v7.cpp index d99e15bb2..7b330ca7f 100644 --- a/src/plugins/generator/iarew/archs/msp430/msp430generalsettingsgroup_v7.cpp +++ b/src/plugins/generator/iarew/archs/msp430/msp430generalsettingsgroup_v7.cpp @@ -281,7 +281,7 @@ struct LibraryOptionsPageOptions final else if (prop == QLatin1String("_printflarge")) printfFormatter = PrintfLargeFormatter; else if (prop == QLatin1String("_printflargenomb")) - printfFormatter = PrintfLargeFormatter; + printfFormatter = PrintfLargeNoMultibytesFormatter; else if (prop == QLatin1String("_printfsmall")) printfFormatter = PrintfSmallFormatter; else if (prop == QLatin1String("_printfsmallnomb")) @@ -299,7 +299,7 @@ struct LibraryOptionsPageOptions final else if (prop == QLatin1String("_scanflarge")) scanfFormatter = ScanfLargeFormatter; else if (prop == QLatin1String("_scanflargenomb")) - scanfFormatter = ScanfLargeFormatter; + scanfFormatter = ScanfLargeNoMultibytesFormatter; else if (prop == QLatin1String("_scanfsmall")) scanfFormatter = ScanfSmallFormatter; else if (prop == QLatin1String("_scanfsmallnomb")) diff --git a/src/plugins/generator/iarew/archs/stm8/stm8generalsettingsgroup_v3.cpp b/src/plugins/generator/iarew/archs/stm8/stm8generalsettingsgroup_v3.cpp index 9477bc36e..83766442b 100644 --- a/src/plugins/generator/iarew/archs/stm8/stm8generalsettingsgroup_v3.cpp +++ b/src/plugins/generator/iarew/archs/stm8/stm8generalsettingsgroup_v3.cpp @@ -205,7 +205,7 @@ struct LibraryOptionsPageOptions final else if (prop == QLatin1String("_printffullnomb")) printfFormatter = PrintfFullNoMultibytesFormatter; else if (prop == QLatin1String("_printflarge")) - printfFormatter = PrintfLargeFormatter; + printfFormatter = PrintfLargeNoMultibytesFormatter; else if (prop == QLatin1String("_printflargenomb")) printfFormatter = PrintfLargeFormatter; else if (prop == QLatin1String("_printfsmall")) @@ -223,7 +223,7 @@ struct LibraryOptionsPageOptions final else if (prop == QLatin1String("_scanffullnomb")) scanfFormatter = ScanfFullNoMultibytesFormatter; else if (prop == QLatin1String("_scanflarge")) - scanfFormatter = ScanfLargeFormatter; + scanfFormatter = ScanfLargeNoMultibytesFormatter; else if (prop == QLatin1String("_scanflargenomb")) scanfFormatter = ScanfLargeFormatter; else if (prop == QLatin1String("_scanfsmall")) diff --git a/src/plugins/generator/iarew/iarew.pri b/src/plugins/generator/iarew/iarew.pri deleted file mode 100644 index 68a3593fa..000000000 --- a/src/plugins/generator/iarew/iarew.pri +++ /dev/null @@ -1 +0,0 @@ -qbsPluginTarget = iarewgenerator diff --git a/src/plugins/generator/iarew/iarew.pro b/src/plugins/generator/iarew/iarew.pro deleted file mode 100644 index 542449510..000000000 --- a/src/plugins/generator/iarew/iarew.pro +++ /dev/null @@ -1,131 +0,0 @@ -include(iarew.pri) -include(../../plugins.pri) -include(../../../shared/json/json.pri) - -QT = core - -# Plugin file. - -SOURCES += \ - $$PWD/iarewgeneratorplugin.cpp \ - -# Common files. - -HEADERS += \ - $$PWD/iarewfileversionproperty.h \ - $$PWD/iarewgenerator.h \ - $$PWD/iarewoptionpropertygroup.h \ - $$PWD/iarewproject.h \ - $$PWD/iarewprojectwriter.h \ - $$PWD/iarewsettingspropertygroup.h \ - $$PWD/iarewsourcefilepropertygroup.h \ - $$PWD/iarewsourcefilespropertygroup.h \ - $$PWD/iarewtoolchainpropertygroup.h \ - $$PWD/iarewutils.h \ - $$PWD/iarewversioninfo.h \ - $$PWD/iarewworkspace.h \ - $$PWD/iarewworkspacewriter.h - -SOURCES += \ - $$PWD/iarewfileversionproperty.cpp \ - $$PWD/iarewgenerator.cpp \ - $$PWD/iarewoptionpropertygroup.cpp \ - $$PWD/iarewproject.cpp \ - $$PWD/iarewprojectwriter.cpp \ - $$PWD/iarewsettingspropertygroup.cpp \ - $$PWD/iarewsourcefilepropertygroup.cpp \ - $$PWD/iarewsourcefilespropertygroup.cpp \ - $$PWD/iarewtoolchainpropertygroup.cpp \ - $$PWD/iarewutils.cpp \ - $$PWD/iarewworkspace.cpp \ - $$PWD/iarewworkspacewriter.cpp - -# For ARM architecture. - -HEADERS += \ - $$PWD/archs/arm/armarchiversettingsgroup_v8.h \ - $$PWD/archs/arm/armassemblersettingsgroup_v8.h \ - $$PWD/archs/arm/armbuildconfigurationgroup_v8.h \ - $$PWD/archs/arm/armcompilersettingsgroup_v8.h \ - $$PWD/archs/arm/armgeneralsettingsgroup_v8.h \ - $$PWD/archs/arm/armlinkersettingsgroup_v8.h - -SOURCES += \ - $$PWD/archs/arm/armarchiversettingsgroup_v8.cpp \ - $$PWD/archs/arm/armassemblersettingsgroup_v8.cpp \ - $$PWD/archs/arm/armbuildconfigurationgroup_v8.cpp \ - $$PWD/archs/arm/armcompilersettingsgroup_v8.cpp \ - $$PWD/archs/arm/armgeneralsettingsgroup_v8.cpp \ - $$PWD/archs/arm/armlinkersettingsgroup_v8.cpp - -# For AVR architecture. - -HEADERS += \ - $$PWD/archs/avr/avrarchiversettingsgroup_v7.h \ - $$PWD/archs/avr/avrassemblersettingsgroup_v7.h \ - $$PWD/archs/avr/avrbuildconfigurationgroup_v7.h \ - $$PWD/archs/avr/avrcompilersettingsgroup_v7.h \ - $$PWD/archs/avr/avrgeneralsettingsgroup_v7.h \ - $$PWD/archs/avr/avrlinkersettingsgroup_v7.h - -SOURCES += \ - $$PWD/archs/avr/avrarchiversettingsgroup_v7.cpp \ - $$PWD/archs/avr/avrassemblersettingsgroup_v7.cpp \ - $$PWD/archs/avr/avrbuildconfigurationgroup_v7.cpp \ - $$PWD/archs/avr/avrcompilersettingsgroup_v7.cpp \ - $$PWD/archs/avr/avrgeneralsettingsgroup_v7.cpp \ - $$PWD/archs/avr/avrlinkersettingsgroup_v7.cpp - -# For MCS51 architecture. - -HEADERS += \ - $$PWD/archs/mcs51/mcs51archiversettingsgroup_v10.h \ - $$PWD/archs/mcs51/mcs51assemblersettingsgroup_v10.h \ - $$PWD/archs/mcs51/mcs51buildconfigurationgroup_v10.h \ - $$PWD/archs/mcs51/mcs51compilersettingsgroup_v10.h \ - $$PWD/archs/mcs51/mcs51generalsettingsgroup_v10.h \ - $$PWD/archs/mcs51/mcs51linkersettingsgroup_v10.h - -SOURCES += \ - $$PWD/archs/mcs51/mcs51archiversettingsgroup_v10.cpp \ - $$PWD/archs/mcs51/mcs51assemblersettingsgroup_v10.cpp \ - $$PWD/archs/mcs51/mcs51buildconfigurationgroup_v10.cpp \ - $$PWD/archs/mcs51/mcs51compilersettingsgroup_v10.cpp \ - $$PWD/archs/mcs51/mcs51generalsettingsgroup_v10.cpp \ - $$PWD/archs/mcs51/mcs51linkersettingsgroup_v10.cpp - -# For STM8 architecture. - -HEADERS += \ - $$PWD/archs/stm8/stm8archiversettingsgroup_v3.h \ - $$PWD/archs/stm8/stm8assemblersettingsgroup_v3.h \ - $$PWD/archs/stm8/stm8buildconfigurationgroup_v3.h \ - $$PWD/archs/stm8/stm8compilersettingsgroup_v3.h \ - $$PWD/archs/stm8/stm8generalsettingsgroup_v3.h \ - $$PWD/archs/stm8/stm8linkersettingsgroup_v3.h - -SOURCES += \ - $$PWD/archs/stm8/stm8archiversettingsgroup_v3.cpp \ - $$PWD/archs/stm8/stm8assemblersettingsgroup_v3.cpp \ - $$PWD/archs/stm8/stm8buildconfigurationgroup_v3.cpp \ - $$PWD/archs/stm8/stm8compilersettingsgroup_v3.cpp \ - $$PWD/archs/stm8/stm8generalsettingsgroup_v3.cpp \ - $$PWD/archs/stm8/stm8linkersettingsgroup_v3.cpp - -# For MSP430 architecture. - -HEADERS += \ - $$PWD/archs/msp430/msp430archiversettingsgroup_v7.h \ - $$PWD/archs/msp430/msp430assemblersettingsgroup_v7.h \ - $$PWD/archs/msp430/msp430buildconfigurationgroup_v7.h \ - $$PWD/archs/msp430/msp430compilersettingsgroup_v7.h \ - $$PWD/archs/msp430/msp430generalsettingsgroup_v7.h \ - $$PWD/archs/msp430/msp430linkersettingsgroup_v7.h - -SOURCES += \ - $$PWD/archs/msp430/msp430archiversettingsgroup_v7.cpp \ - $$PWD/archs/msp430/msp430assemblersettingsgroup_v7.cpp \ - $$PWD/archs/msp430/msp430buildconfigurationgroup_v7.cpp \ - $$PWD/archs/msp430/msp430compilersettingsgroup_v7.cpp \ - $$PWD/archs/msp430/msp430generalsettingsgroup_v7.cpp \ - $$PWD/archs/msp430/msp430linkersettingsgroup_v7.cpp diff --git a/src/plugins/generator/iarew/iarewutils.cpp b/src/plugins/generator/iarew/iarewutils.cpp index 7196a391c..9d39ab264 100644 --- a/src/plugins/generator/iarew/iarewutils.cpp +++ b/src/plugins/generator/iarew/iarewutils.cpp @@ -105,9 +105,9 @@ QString flagValue(const QStringList &flags, const QString &flagKey) // Check that option is in form of 'flagKey=<flagValue>'. if (flagIt->contains(QLatin1Char('='))) { value = flagIt->split(QLatin1Char('=')).at(1).trimmed(); - } else if (flagKey.count() < flagIt->count()) { + } else if (flagKey.size() < flagIt->size()) { // In this case an option is in form of 'flagKey<flagValue>'. - value = flagIt->mid(flagKey.count()).trimmed(); + value = flagIt->mid(flagKey.size()).trimmed(); } else { // In this case an option is in form of 'flagKey <flagValue>'. ++flagIt; diff --git a/src/plugins/generator/keiluv/archs/arm/armtargetlinkergroup_v5.cpp b/src/plugins/generator/keiluv/archs/arm/armtargetlinkergroup_v5.cpp index 52a19cf81..f2bc8367e 100644 --- a/src/plugins/generator/keiluv/archs/arm/armtargetlinkergroup_v5.cpp +++ b/src/plugins/generator/keiluv/archs/arm/armtargetlinkergroup_v5.cpp @@ -101,7 +101,7 @@ struct LinkerPageOptions final if (scatterFiles.count() > 0) mainScatterFile = scatterFiles.takeFirst(); - for (const auto &scatterFile : qAsConst(scatterFiles)) { + for (const auto &scatterFile : std::as_const(scatterFiles)) { const auto control = QStringLiteral("--scatter %1").arg(scatterFile); miscControls.push_back(control); } diff --git a/src/plugins/generator/keiluv/keiluv.pri b/src/plugins/generator/keiluv/keiluv.pri deleted file mode 100644 index 6995fb059..000000000 --- a/src/plugins/generator/keiluv/keiluv.pri +++ /dev/null @@ -1 +0,0 @@ -qbsPluginTarget = keiluvgenerator diff --git a/src/plugins/generator/keiluv/keiluv.pro b/src/plugins/generator/keiluv/keiluv.pro deleted file mode 100644 index 052277ef8..000000000 --- a/src/plugins/generator/keiluv/keiluv.pro +++ /dev/null @@ -1,90 +0,0 @@ -include(keiluv.pri) -include(../../plugins.pri) -include(../../../shared/json/json.pri) - -QT = core - -# Plugin file. - -SOURCES += \ - $$PWD/keiluvgeneratorplugin.cpp \ - -# Common files. - -HEADERS += \ - $$PWD/keiluvconstants.h \ - $$PWD/keiluvfilesgroupspropertygroup.h \ - $$PWD/keiluvgenerator.h \ - $$PWD/keiluvproject.h \ - $$PWD/keiluvprojectwriter.h \ - $$PWD/keiluvutils.h \ - $$PWD/keiluvversioninfo.h \ - $$PWD/keiluvworkspace.h \ - $$PWD/keiluvworkspacewriter.h - -SOURCES += \ - $$PWD/keiluvfilesgroupspropertygroup.cpp \ - $$PWD/keiluvgenerator.cpp \ - $$PWD/keiluvproject.cpp \ - $$PWD/keiluvprojectwriter.cpp \ - $$PWD/keiluvutils.cpp \ - $$PWD/keiluvworkspace.cpp \ - $$PWD/keiluvworkspacewriter.cpp - -# For MCS51 architecture. - -HEADERS += \ - $$PWD/archs/mcs51/mcs51buildtargetgroup_v5.h \ - $$PWD/archs/mcs51/mcs51commonpropertygroup_v5.h \ - $$PWD/archs/mcs51/mcs51debugoptiongroup_v5.h \ - $$PWD/archs/mcs51/mcs51dlloptiongroup_v5.h \ - $$PWD/archs/mcs51/mcs51targetassemblergroup_v5.h \ - $$PWD/archs/mcs51/mcs51targetcommonoptionsgroup_v5.h \ - $$PWD/archs/mcs51/mcs51targetcompilergroup_v5.h \ - $$PWD/archs/mcs51/mcs51targetgroup_v5.h \ - $$PWD/archs/mcs51/mcs51targetlinkergroup_v5.h \ - $$PWD/archs/mcs51/mcs51targetmiscgroup_v5.h \ - $$PWD/archs/mcs51/mcs51utilitiesgroup_v5.h \ - $$PWD/archs/mcs51/mcs51utils.h - -SOURCES += \ - $$PWD/archs/mcs51/mcs51buildtargetgroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51commonpropertygroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51debugoptiongroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51dlloptiongroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51targetassemblergroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51targetcommonoptionsgroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51targetcompilergroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51targetgroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51targetlinkergroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51targetmiscgroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51utilitiesgroup_v5.cpp \ - $$PWD/archs/mcs51/mcs51utils.cpp - -# For ARM architecture. - -HEADERS += \ - $$PWD/archs/arm/armbuildtargetgroup_v5.h \ - $$PWD/archs/arm/armcommonpropertygroup_v5.h \ - $$PWD/archs/arm/armdebugoptiongroup_v5.h \ - $$PWD/archs/arm/armdlloptiongroup_v5.h \ - $$PWD/archs/arm/armtargetassemblergroup_v5.h \ - $$PWD/archs/arm/armtargetcommonoptionsgroup_v5.h \ - $$PWD/archs/arm/armtargetcompilergroup_v5.h \ - $$PWD/archs/arm/armtargetgroup_v5.h \ - $$PWD/archs/arm/armtargetlinkergroup_v5.h \ - $$PWD/archs/arm/armtargetmiscgroup_v5.h \ - $$PWD/archs/arm/armutilitiesgroup_v5.h - -SOURCES += \ - $$PWD/archs/arm/armbuildtargetgroup_v5.cpp \ - $$PWD/archs/arm/armcommonpropertygroup_v5.cpp \ - $$PWD/archs/arm/armdebugoptiongroup_v5.cpp \ - $$PWD/archs/arm/armdlloptiongroup_v5.cpp \ - $$PWD/archs/arm/armtargetassemblergroup_v5.cpp \ - $$PWD/archs/arm/armtargetcommonoptionsgroup_v5.cpp \ - $$PWD/archs/arm/armtargetcompilergroup_v5.cpp \ - $$PWD/archs/arm/armtargetgroup_v5.cpp \ - $$PWD/archs/arm/armtargetlinkergroup_v5.cpp \ - $$PWD/archs/arm/armtargetmiscgroup_v5.cpp \ - $$PWD/archs/arm/armutilitiesgroup_v5.cpp diff --git a/src/plugins/generator/makefilegenerator/makefilegenerator.cpp b/src/plugins/generator/makefilegenerator/makefilegenerator.cpp index c53dccd31..690d83569 100644 --- a/src/plugins/generator/makefilegenerator/makefilegenerator.cpp +++ b/src/plugins/generator/makefilegenerator/makefilegenerator.cpp @@ -332,15 +332,15 @@ void qbs::MakefileGenerator::generate() } stream << "all:"; - for (const QString &target : qAsConst(allDefaultTargets)) + for (const QString &target : std::as_const(allDefaultTargets)) stream << ' ' << target; stream << '\n'; stream << "install:"; - for (const QString &target : qAsConst(allDefaultTargets)) + for (const QString &target : std::as_const(allDefaultTargets)) stream << ' ' << "install-" << target; stream << '\n'; stream << "clean:"; - for (const QString &target : qAsConst(allTargets)) + for (const QString &target : std::as_const(allTargets)) stream << ' ' << "clean-" << target; stream << '\n'; if (!filesCreatedByJsCommands.empty()) { diff --git a/src/plugins/generator/makefilegenerator/makefilegenerator.pri b/src/plugins/generator/makefilegenerator/makefilegenerator.pri deleted file mode 100644 index 971e63d24..000000000 --- a/src/plugins/generator/makefilegenerator/makefilegenerator.pri +++ /dev/null @@ -1 +0,0 @@ -qbsPluginTarget = makefilegenerator diff --git a/src/plugins/generator/makefilegenerator/makefilegenerator.pro b/src/plugins/generator/makefilegenerator/makefilegenerator.pro deleted file mode 100644 index c03191c39..000000000 --- a/src/plugins/generator/makefilegenerator/makefilegenerator.pro +++ /dev/null @@ -1,11 +0,0 @@ -include(makefilegenerator.pri) -include(../../plugins.pri) - -QT = core - -HEADERS += \ - $$PWD/makefilegenerator.h - -SOURCES += \ - $$PWD/makefilegenerator.cpp \ - $$PWD/makefilegeneratorplugin.cpp diff --git a/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp b/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp index 039b1173e..127d6a438 100644 --- a/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp +++ b/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp @@ -45,110 +45,203 @@ namespace qbs { -static QStringList sourceFileExtensions() +namespace { + +const QStringList & sourceFileExtensions() { - return {QStringLiteral("c"), QStringLiteral("C"), QStringLiteral("cpp"), - QStringLiteral("cxx"), QStringLiteral("c++"), QStringLiteral("cc"), - QStringLiteral("cs"), QStringLiteral("def"), QStringLiteral("java"), - QStringLiteral("m"), QStringLiteral("mm")}; + static const QStringList EXTENSIONS{ + QStringLiteral("c"), + QStringLiteral("C"), + QStringLiteral("cpp"), + QStringLiteral("cxx"), + QStringLiteral("c++"), + QStringLiteral("cc"), + QStringLiteral("cs"), + QStringLiteral("def"), + QStringLiteral("java"), + QStringLiteral("m"), + QStringLiteral("mm")}; + + return EXTENSIONS; } -static QStringList headerFileExtensions() +const QStringList & headerFileExtensions() { - return {QStringLiteral("h"), QStringLiteral("H"), QStringLiteral("hpp"), - QStringLiteral("hxx"), QStringLiteral("h++")}; + static const QStringList EXTENSIONS{ + QStringLiteral("h"), + QStringLiteral("H"), + QStringLiteral("hpp"), + QStringLiteral("hxx"), + QStringLiteral("h++")}; + + return EXTENSIONS; } -static std::vector<MSBuildFilter *> defaultItemGroupFilters(IMSBuildItemGroup *parent = nullptr) +struct FilterInfo +{ + QString name; + QList<QString> extensions; + bool parseFiles{ true }; + bool sourceControlFiles{ true }; +}; + +const std::vector<FilterInfo> & getDefaultFilterInfo() { - const auto sourceFilter = new MSBuildFilter(QStringLiteral("Source Files"), sourceFileExtensions(), parent); - const auto headerFilter = new MSBuildFilter(QStringLiteral("Header Files"), headerFileExtensions(), parent); - - const auto formFilter = new MSBuildFilter(QStringLiteral("Form Files"), - QStringList() << QStringLiteral("ui"), parent); - const auto resourceFilter = new MSBuildFilter(QStringLiteral("Resource Files"), - QStringList() - << QStringLiteral("qrc") - << QStringLiteral("rc") - << QStringLiteral("*"), parent); - resourceFilter->setParseFiles(false); - const auto generatedFilter = new MSBuildFilter(QStringLiteral("Generated Files"), - QStringList() << QStringLiteral("moc"), parent); - generatedFilter->setSourceControlFiles(false); - const auto translationFilter = new MSBuildFilter(QStringLiteral("Translation Files"), - QStringList() << QStringLiteral("ts"), parent); - translationFilter->setParseFiles(false); - - return std::vector<MSBuildFilter *> { - sourceFilter, headerFilter, formFilter, resourceFilter, generatedFilter, translationFilter + static const std::vector<FilterInfo> INFOS { + {QStringLiteral("Source Files"), sourceFileExtensions()}, + {QStringLiteral("Header Files"), headerFileExtensions()}, + {QStringLiteral("Form Files"), QStringList() << QStringLiteral("ui")}, + {QStringLiteral("Resource Files"), QStringList() << QStringLiteral("qrc") << QStringLiteral("rc") << QStringLiteral("*"), false}, + {QStringLiteral("Generated Files"), QStringList() << QStringLiteral("moc"), true, false}, + {QStringLiteral("Translation Files"), QStringList() << QStringLiteral("ts"), false}, }; + + return INFOS; } -static bool matchesFilter(const MSBuildFilter *filter, const QString &filePath) +MSBuildFilter * makeBuildFilter(const FilterInfo &filterInfo, + MSBuildItemGroup *itemFiltersGroup) { - return filter->extensions().contains(QFileInfo(filePath).completeSuffix()); + const auto filter = new MSBuildFilter(filterInfo.name, filterInfo.extensions, itemFiltersGroup); + filter->appendProperty(QStringLiteral("ParseFiles"), filterInfo.parseFiles); + filter->appendProperty(QStringLiteral("SourceControlFiles"), filterInfo.sourceControlFiles); + return filter; } -MSBuildFiltersProject::MSBuildFiltersProject(const GeneratableProductData &product, - QObject *parent) - : MSBuildProject(parent) +bool matchesFilter(const FilterInfo &filterInfo, + const QString &filePath) { - // Normally this would be versionInfo.toolsVersion() but for some reason it seems - // filters projects are always v4.0 - setToolsVersion(QStringLiteral("4.0")); + return filterInfo.extensions.contains(QFileInfo(filePath).completeSuffix()); +} - const auto itemGroup = new MSBuildItemGroup(this); - const auto filterOptions = defaultItemGroupFilters(); - for (const auto options : filterOptions) { - const auto filter = new MSBuildFilter(options->include(), options->extensions(), itemGroup); - filter->appendProperty(QStringLiteral("ParseFiles"), options->parseFiles()); - filter->appendProperty(QStringLiteral("SourceControlFiles"), options->sourceControlFiles()); - } +bool isHeaderFile(const QString &filePath) +{ + return headerFileExtensions().contains(QFileInfo(filePath).completeSuffix()); +} + +bool isSourceFile(const QString &filePath) +{ + return sourceFileExtensions().contains(QFileInfo(filePath).completeSuffix()); +} + +MSBuildFileItem * makeFileItem(const QString& filePath, + MSBuildItemGroup *itemGroup) +{ + if (isHeaderFile(filePath)) + return new MSBuildClInclude(itemGroup); + if (isSourceFile(filePath)) + return new MSBuildClCompile(itemGroup); + + return new MSBuildNone(itemGroup); +} + + +class ProductProcessor +{ +public: using StringSet = Internal::Set<QString>; - StringSet allFiles; - const auto productDatas = product.data.values(); - for (const auto &productData : productDatas) { - for (const auto &groupData : productData.groups()) - if (groupData.isEnabled()) - allFiles.unite(Internal::rangeTo<StringSet>(groupData.allFilePaths())); + + ProductProcessor(MSBuildProject *parent) + : m_parent(parent) + , m_itemFiltersGroup(new MSBuildItemGroup(m_parent)) + { } - MSBuildItemGroup *headerFilesGroup = nullptr; - MSBuildItemGroup *sourceFilesGroup = nullptr; - MSBuildItemGroup *filesGroup = nullptr; - - for (const auto &filePath : allFiles) { - MSBuildFileItem *fileItem = nullptr; - - for (const MSBuildFilter *options : filterOptions) { - if (matchesFilter(options, filePath)) { - if (options->include() == QStringLiteral("Header Files")) { - if (!headerFilesGroup) - headerFilesGroup = new MSBuildItemGroup(this); - fileItem = new MSBuildClInclude(headerFilesGroup); - } else if (options->include() == QStringLiteral("Source Files")) { - if (!sourceFilesGroup) - sourceFilesGroup = new MSBuildItemGroup(this); - fileItem = new MSBuildClCompile(sourceFilesGroup); + void operator()(const QList<ProductData> &productDatas) + { + for (const auto &productData : productDatas) { + const auto &productName = productData.name(); + + for (const auto &groupData : productData.groups()) { + if (groupData.name() == productName) { + processProductFiles(Internal::rangeTo<StringSet>(groupData.allFilePaths())); + } else { + processGroup(groupData); + } + } + } + } + + void processProductFiles(const StringSet &files) + { + for (const auto &filePath : files) { + MSBuildFileItem *fileItem = nullptr; + + for (const auto &filterInfo : getDefaultFilterInfo()) { + if (matchesFilter(filterInfo, filePath)) { + makeFilter(filterInfo); + + if (filterInfo.name == QStringLiteral("Header Files")) { + if (!m_headerFilesGroup) + m_headerFilesGroup = new MSBuildItemGroup(m_parent); + fileItem = new MSBuildClInclude(m_headerFilesGroup); + } else if (filterInfo.name == QStringLiteral("Source Files")) { + if (!m_sourceFilesGroup) + m_sourceFilesGroup = new MSBuildItemGroup(m_parent); + fileItem = new MSBuildClCompile(m_sourceFilesGroup); + } + + if (fileItem) { + fileItem->setFilterName(filterInfo.name); + break; + } } + } - if (fileItem) { - fileItem->setFilterName(options->include()); - break; + if (!fileItem) { + if (!m_filesGroup) { + m_filesGroup = new MSBuildItemGroup(m_parent); } + + fileItem = new MSBuildNone(m_filesGroup); } + + fileItem->setFilePath(filePath); + } + } + + void processGroup(const GroupData &groupData) + { + makeFilter({groupData.name(), QStringList() << QStringLiteral("*")}); + + auto *itemGroup = new MSBuildItemGroup(m_parent); + const auto &files = groupData.allFilePaths(); + for (const auto &filePath : files) { + auto *fileItem = makeFileItem(filePath, itemGroup); + fileItem->setFilePath(filePath); + fileItem->setFilterName(groupData.name()); } + } - if (!fileItem) { - if (!filesGroup) - filesGroup = new MSBuildItemGroup(this); - fileItem = new MSBuildNone(filesGroup); + void makeFilter(const FilterInfo &filterInfo) + { + if (!m_createdFilters.contains(filterInfo.name)) { + makeBuildFilter(filterInfo, m_itemFiltersGroup); + m_createdFilters.insert(filterInfo.name); } - fileItem->setFilePath(filePath); } - qDeleteAll(filterOptions); +private: + MSBuildProject *m_parent = nullptr; + MSBuildItemGroup *m_itemFiltersGroup = nullptr; + MSBuildItemGroup *m_headerFilesGroup = nullptr; + MSBuildItemGroup *m_sourceFilesGroup = nullptr; + MSBuildItemGroup *m_filesGroup = nullptr; + QSet<QString> m_createdFilters; +}; + +} // namespace + +MSBuildFiltersProject::MSBuildFiltersProject(const GeneratableProductData &product, + QObject *parent) + : MSBuildProject(parent) +{ + // Normally this would be versionInfo.toolsVersion() but for some reason it seems + // filters projects are always v4.0 + setToolsVersion(QStringLiteral("4.0")); + + ProductProcessor(this)(product.data.values()); } } // namespace qbs diff --git a/src/plugins/generator/visualstudio/visualstudio.pri b/src/plugins/generator/visualstudio/visualstudio.pri deleted file mode 100644 index 13a48e85d..000000000 --- a/src/plugins/generator/visualstudio/visualstudio.pri +++ /dev/null @@ -1 +0,0 @@ -qbsPluginTarget = visualstudiogenerator diff --git a/src/plugins/generator/visualstudio/visualstudio.pro b/src/plugins/generator/visualstudio/visualstudio.pro deleted file mode 100644 index 49aee0eb4..000000000 --- a/src/plugins/generator/visualstudio/visualstudio.pro +++ /dev/null @@ -1,32 +0,0 @@ -include(visualstudio.pri) -include(../../plugins.pri) -include(../../../shared/json/json.pri) -include(../../../lib/msbuild/use_msbuild.pri) -# Using the indirect usage of corelib via plugins.pri breaks linking on mingw -include(../../../lib/corelib/use_corelib.pri) - -INCLUDEPATH += ../../../lib/msbuild - -QT = core - -HEADERS += \ - $$PWD/msbuildfiltersproject.h \ - $$PWD/msbuildqbsgenerateproject.h \ - $$PWD/msbuildqbsproductproject.h \ - $$PWD/msbuildsharedsolutionpropertiesproject.h \ - $$PWD/msbuildsolutionpropertiesproject.h \ - $$PWD/msbuildtargetproject.h \ - $$PWD/msbuildutils.h \ - $$PWD/visualstudiogenerator.h \ - $$PWD/visualstudioguidpool.h - -SOURCES += \ - $$PWD/msbuildfiltersproject.cpp \ - $$PWD/msbuildqbsgenerateproject.cpp \ - $$PWD/msbuildqbsproductproject.cpp \ - $$PWD/msbuildsharedsolutionpropertiesproject.cpp \ - $$PWD/msbuildsolutionpropertiesproject.cpp \ - $$PWD/msbuildtargetproject.cpp \ - $$PWD/visualstudiogenerator.cpp \ - $$PWD/visualstudiogeneratorplugin.cpp \ - $$PWD/visualstudioguidpool.cpp diff --git a/src/plugins/generator/visualstudio/visualstudiogenerator.cpp b/src/plugins/generator/visualstudio/visualstudiogenerator.cpp index d0c367dd7..d6add9c6f 100644 --- a/src/plugins/generator/visualstudio/visualstudiogenerator.cpp +++ b/src/plugins/generator/visualstudio/visualstudiogenerator.cpp @@ -189,7 +189,7 @@ void VisualStudioGenerator::addPropertySheets(const GeneratableProject &project) void VisualStudioGenerator::addPropertySheets( const std::shared_ptr<MSBuildTargetProject> &targetProject) { - for (const auto &pair : qAsConst(d->propertySheetNames)) { + for (const auto &pair : std::as_const(d->propertySheetNames)) { targetProject->appendPropertySheet( QStringLiteral("$(SolutionDir)\\") + pair.first, pair.second); } diff --git a/src/plugins/plugins.pri b/src/plugins/plugins.pri deleted file mode 100644 index 65de9bc10..000000000 --- a/src/plugins/plugins.pri +++ /dev/null @@ -1,21 +0,0 @@ -include(qbs_plugin_common.pri) - -TARGET = $$qbsPluginTarget -DESTDIR = $$qbsPluginDestDir - -isEmpty(QBSLIBDIR): QBSLIBDIR = $$OUT_PWD/../../../../$${QBS_LIBRARY_DIRNAME} -isEmpty(QBS_RPATH): QBS_RPATH = ../.. -include($${PWD}/../lib/corelib/use_corelib.pri) - -TEMPLATE = lib - -CONFIG += c++17 -CONFIG(static, static|shared): CONFIG += create_prl -CONFIG += plugin - -!isEmpty(QBS_PLUGINS_INSTALL_DIR): \ - installPrefix = $${QBS_PLUGINS_INSTALL_DIR} -else: \ - installPrefix = $${QBS_INSTALL_PREFIX}/$${QBS_LIBRARY_DIRNAME} -target.path = $${installPrefix}/qbs/plugins -INSTALLS += target diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro deleted file mode 100644 index 9fe2e6b5b..000000000 --- a/src/plugins/plugins.pro +++ /dev/null @@ -1,2 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = generator scanner diff --git a/src/plugins/qbs_plugin_common.pri b/src/plugins/qbs_plugin_common.pri deleted file mode 100644 index 45ade4989..000000000 --- a/src/plugins/qbs_plugin_common.pri +++ /dev/null @@ -1,9 +0,0 @@ -include(../library_dirname.pri) -include(../install_prefix.pri) - -!isEmpty(QBS_PLUGINS_BUILD_DIR) { - destdirPrefix = $${QBS_PLUGINS_BUILD_DIR} -} else { - destdirPrefix = $$shadowed($$PWD)/../../$${QBS_LIBRARY_DIRNAME} -} -qbsPluginDestDir = $${destdirPrefix}/qbs/plugins diff --git a/src/plugins/scanner/cpp/Lexer.cpp b/src/plugins/scanner/cpp/Lexer.cpp index 6bad85c5c..6793080e9 100644 --- a/src/plugins/scanner/cpp/Lexer.cpp +++ b/src/plugins/scanner/cpp/Lexer.cpp @@ -69,8 +69,6 @@ Lexer::Lexer(const char *firstChar, const char *lastChar) setSource(firstChar, lastChar); } -Lexer::~Lexer() = default; - void Lexer::setSource(const char *firstChar, const char *lastChar) { _firstChar = firstChar; @@ -566,7 +564,7 @@ void Lexer::scan_helper(Token *tok) do { yyinp(); - if (! (isalnum(_yychar) || _yychar == '_' || _yychar == '$')) + if (!isalnum(_yychar) && _yychar != '_' && _yychar != '$') break; } while (_yychar); diff --git a/src/plugins/scanner/cpp/Lexer.h b/src/plugins/scanner/cpp/Lexer.h index 8f55f84e9..42f733dc5 100644 --- a/src/plugins/scanner/cpp/Lexer.h +++ b/src/plugins/scanner/cpp/Lexer.h @@ -79,7 +79,6 @@ public: }; Lexer(const char *firstChar, const char *lastChar); - ~Lexer(); bool qtMocRunEnabled() const; void setQtMocRunEnabled(bool onoff); diff --git a/src/plugins/scanner/cpp/cpp.pri b/src/plugins/scanner/cpp/cpp.pri deleted file mode 100644 index 515e65635..000000000 --- a/src/plugins/scanner/cpp/cpp.pri +++ /dev/null @@ -1 +0,0 @@ -qbsPluginTarget = qbs_cpp_scanner diff --git a/src/plugins/scanner/cpp/cpp.pro b/src/plugins/scanner/cpp/cpp.pro deleted file mode 100644 index 12a6d7b6c..000000000 --- a/src/plugins/scanner/cpp/cpp.pro +++ /dev/null @@ -1,10 +0,0 @@ -include(cpp.pri) -include(../../plugins.pri) -DEFINES += CPLUSPLUS_NO_PARSER - -QT = core - -HEADERS += CPlusPlusForwardDeclarations.h Lexer.h Token.h ../scanner.h \ - cpp_global.h -SOURCES += Lexer.cpp Token.cpp \ - cppscanner.cpp diff --git a/src/plugins/scanner/qt/qt.pri b/src/plugins/scanner/qt/qt.pri deleted file mode 100644 index 71e3a8a45..000000000 --- a/src/plugins/scanner/qt/qt.pri +++ /dev/null @@ -1 +0,0 @@ -qbsPluginTarget = qbs_qt_scanner diff --git a/src/plugins/scanner/qt/qt.pro b/src/plugins/scanner/qt/qt.pro deleted file mode 100644 index f231ea9e2..000000000 --- a/src/plugins/scanner/qt/qt.pro +++ /dev/null @@ -1,8 +0,0 @@ -include(qt.pri) -include(../../plugins.pri) - -QT = core - -HEADERS += ../scanner.h -SOURCES += \ - qtscanner.cpp diff --git a/src/plugins/scanner/scanner.pro b/src/plugins/scanner/scanner.pro deleted file mode 100644 index 68acae7da..000000000 --- a/src/plugins/scanner/scanner.pro +++ /dev/null @@ -1,3 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = cpp qt - diff --git a/src/plugins/use_plugin.pri b/src/plugins/use_plugin.pri deleted file mode 100644 index 53be9f4db..000000000 --- a/src/plugins/use_plugin.pri +++ /dev/null @@ -1,10 +0,0 @@ -include(qbs_plugin_common.pri) - -qbsPluginLibName = $$qbsPluginTarget -win32:CONFIG(debug, debug|release):CONFIG(static, static|shared): \ - qbsPluginLibName = $${qbsPluginLibName}d -LIBS += -l$$qbsPluginLibName - -macos: QMAKE_LFLAGS += -Wl,-u,_qbs_static_plugin_register_$$qbsPluginTarget -!macos:gcc: QMAKE_LFLAGS += -Wl,--require-defined=qbs_static_plugin_register_$$qbsPluginTarget -msvc: QMAKE_LFLAGS += /INCLUDE:qbs_static_plugin_register_$$qbsPluginTarget |