forked from qt-creator/qt-creator
		
	CppTools/ProjectExplorer: Remove enum duplication
... between CppTools::ProjectPart and ProjectExplorer::ToolChain. Change-Id: I8b448747e454adbed77547460383b8515462cc81 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
		@@ -59,7 +59,7 @@ QStringList CompilerOptionsBuilder::build(CppTools::ProjectFile::Kind fileKind,
 | 
			
		||||
    m_options.clear();
 | 
			
		||||
 | 
			
		||||
    if (fileKind == ProjectFile::CHeader || fileKind == ProjectFile::CSource) {
 | 
			
		||||
        QTC_ASSERT(m_projectPart.languageVersion <= ProjectPart::LatestCVersion,
 | 
			
		||||
        QTC_ASSERT(m_projectPart.languageVersion <= ProjectExplorer::LanguageVersion::LatestC,
 | 
			
		||||
                   return QStringList(););
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -196,7 +196,7 @@ void CompilerOptionsBuilder::addExtraCodeModelFlags()
 | 
			
		||||
 | 
			
		||||
void CompilerOptionsBuilder::enableExceptions()
 | 
			
		||||
{
 | 
			
		||||
    if (m_projectPart.languageVersion > ProjectPart::LatestCVersion)
 | 
			
		||||
    if (m_projectPart.languageVersion > ProjectExplorer::LanguageVersion::LatestC)
 | 
			
		||||
        add(QLatin1String("-fcxx-exceptions"));
 | 
			
		||||
    add(QLatin1String("-fexceptions"));
 | 
			
		||||
}
 | 
			
		||||
@@ -378,7 +378,8 @@ void CompilerOptionsBuilder::addMacros(const ProjectExplorer::Macros ¯os)
 | 
			
		||||
 | 
			
		||||
void CompilerOptionsBuilder::updateLanguageOption(ProjectFile::Kind fileKind)
 | 
			
		||||
{
 | 
			
		||||
    const bool objcExt = m_projectPart.languageExtensions & ProjectPart::ObjectiveCExtensions;
 | 
			
		||||
    const bool objcExt = m_projectPart.languageExtensions
 | 
			
		||||
                         & ProjectExplorer::LanguageExtension::ObjectiveC;
 | 
			
		||||
    const QStringList options = createLanguageOptionGcc(fileKind, objcExt);
 | 
			
		||||
    if (options.isEmpty())
 | 
			
		||||
        return;
 | 
			
		||||
@@ -394,48 +395,51 @@ void CompilerOptionsBuilder::updateLanguageOption(ProjectFile::Kind fileKind)
 | 
			
		||||
 | 
			
		||||
void CompilerOptionsBuilder::addOptionsForLanguage(bool checkForBorlandExtensions)
 | 
			
		||||
{
 | 
			
		||||
    using ProjectExplorer::LanguageExtension;
 | 
			
		||||
    using ProjectExplorer::LanguageVersion;
 | 
			
		||||
 | 
			
		||||
    QStringList opts;
 | 
			
		||||
    const ProjectPart::LanguageExtensions languageExtensions = m_projectPart.languageExtensions;
 | 
			
		||||
    const bool gnuExtensions = languageExtensions & ProjectPart::GnuExtensions;
 | 
			
		||||
    const ProjectExplorer::LanguageExtensions languageExtensions = m_projectPart.languageExtensions;
 | 
			
		||||
    const bool gnuExtensions = languageExtensions & LanguageExtension::Gnu;
 | 
			
		||||
 | 
			
		||||
    switch (m_projectPart.languageVersion) {
 | 
			
		||||
    case ProjectPart::C89:
 | 
			
		||||
    case LanguageVersion::C89:
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu89") : QLatin1String("-std=c89"));
 | 
			
		||||
        break;
 | 
			
		||||
    case ProjectPart::C99:
 | 
			
		||||
    case LanguageVersion::C99:
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu99") : QLatin1String("-std=c99"));
 | 
			
		||||
        break;
 | 
			
		||||
    case ProjectPart::C11:
 | 
			
		||||
    case LanguageVersion::C11:
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu11") : QLatin1String("-std=c11"));
 | 
			
		||||
        break;
 | 
			
		||||
    case ProjectPart::C18:
 | 
			
		||||
    case LanguageVersion::C18:
 | 
			
		||||
        // Clang 6, 7 and current trunk do not accept "gnu18"/"c18", so use the "*17" variants.
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu17") : QLatin1String("-std=c17"));
 | 
			
		||||
        break;
 | 
			
		||||
    case ProjectPart::CXX11:
 | 
			
		||||
    case LanguageVersion::CXX11:
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu++11") : QLatin1String("-std=c++11"));
 | 
			
		||||
        break;
 | 
			
		||||
    case ProjectPart::CXX98:
 | 
			
		||||
    case LanguageVersion::CXX98:
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu++98") : QLatin1String("-std=c++98"));
 | 
			
		||||
        break;
 | 
			
		||||
    case ProjectPart::CXX03:
 | 
			
		||||
    case LanguageVersion::CXX03:
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu++03") : QLatin1String("-std=c++03"));
 | 
			
		||||
        break;
 | 
			
		||||
    case ProjectPart::CXX14:
 | 
			
		||||
    case LanguageVersion::CXX14:
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu++14") : QLatin1String("-std=c++14"));
 | 
			
		||||
        break;
 | 
			
		||||
    case ProjectPart::CXX17:
 | 
			
		||||
    case LanguageVersion::CXX17:
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu++17") : QLatin1String("-std=c++17"));
 | 
			
		||||
        break;
 | 
			
		||||
    case ProjectPart::CXX2a:
 | 
			
		||||
    case LanguageVersion::CXX2a:
 | 
			
		||||
        opts << (gnuExtensions ? QLatin1String("-std=gnu++2a") : QLatin1String("-std=c++2a"));
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (languageExtensions & ProjectPart::MicrosoftExtensions)
 | 
			
		||||
    if (languageExtensions & LanguageExtension::Microsoft)
 | 
			
		||||
        opts << QLatin1String("-fms-extensions");
 | 
			
		||||
 | 
			
		||||
    if (checkForBorlandExtensions && (languageExtensions & ProjectPart::BorlandExtensions))
 | 
			
		||||
    if (checkForBorlandExtensions && (languageExtensions & LanguageExtension::Borland))
 | 
			
		||||
        opts << QLatin1String("-fborland-extensions");
 | 
			
		||||
 | 
			
		||||
    m_options.append(opts);
 | 
			
		||||
 
 | 
			
		||||
@@ -103,9 +103,9 @@ QString Utils::toString(ProjectExplorer::HeaderPathType type)
 | 
			
		||||
    return QString();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QString Utils::toString(ProjectPart::LanguageVersion languageVersion)
 | 
			
		||||
QString Utils::toString(ProjectExplorer::LanguageVersion languageVersion)
 | 
			
		||||
{
 | 
			
		||||
#define CASE_LANGUAGEVERSION(x) case ProjectPart::x: return QLatin1String(#x)
 | 
			
		||||
#define CASE_LANGUAGEVERSION(x) case ProjectExplorer::LanguageVersion::x: return QLatin1String(#x)
 | 
			
		||||
    switch (languageVersion) {
 | 
			
		||||
    CASE_LANGUAGEVERSION(C89);
 | 
			
		||||
    CASE_LANGUAGEVERSION(C99);
 | 
			
		||||
@@ -123,19 +123,19 @@ QString Utils::toString(ProjectPart::LanguageVersion languageVersion)
 | 
			
		||||
    return QString();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QString Utils::toString(ProjectPart::LanguageExtensions languageExtension)
 | 
			
		||||
QString Utils::toString(ProjectExplorer::LanguageExtensions languageExtension)
 | 
			
		||||
{
 | 
			
		||||
    QString result;
 | 
			
		||||
 | 
			
		||||
#define CASE_LANGUAGE_EXTENSION(ext) if (languageExtension & ProjectPart::ext) \
 | 
			
		||||
#define CASE_LANGUAGE_EXTENSION(ext) if (languageExtension & ProjectExplorer::LanguageExtension::ext) \
 | 
			
		||||
    result += QLatin1String(#ext ", ");
 | 
			
		||||
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(NoExtensions);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(GnuExtensions);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(MicrosoftExtensions);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(BorlandExtensions);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(OpenMPExtensions);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(ObjectiveCExtensions);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(None);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(Gnu);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(Microsoft);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(Borland);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(OpenMP);
 | 
			
		||||
    CASE_LANGUAGE_EXTENSION(ObjectiveC);
 | 
			
		||||
#undef CASE_LANGUAGE_EXTENSION
 | 
			
		||||
    if (result.endsWith(QLatin1String(", ")))
 | 
			
		||||
        result.chop(2);
 | 
			
		||||
 
 | 
			
		||||
@@ -47,8 +47,8 @@ struct CPPTOOLS_EXPORT Utils
 | 
			
		||||
    static QString toString(CPlusPlus::Document::CheckMode checkMode);
 | 
			
		||||
    static QString toString(CPlusPlus::Document::DiagnosticMessage::Level level);
 | 
			
		||||
    static QString toString(ProjectExplorer::HeaderPathType type);
 | 
			
		||||
    static QString toString(CppTools::ProjectPart::LanguageVersion languageVersion);
 | 
			
		||||
    static QString toString(CppTools::ProjectPart::LanguageExtensions languageExtension);
 | 
			
		||||
    static QString toString(ProjectExplorer::LanguageVersion languageVersion);
 | 
			
		||||
    static QString toString(ProjectExplorer::LanguageExtensions languageExtension);
 | 
			
		||||
    static QString toString(CppTools::ProjectPart::QtVersion qtVersion);
 | 
			
		||||
    static QString toString(CppTools::ProjectPart::BuildTargetType buildTargetType);
 | 
			
		||||
    static QString toString(const QVector<CppTools::ProjectFile> &projectFiles);
 | 
			
		||||
 
 | 
			
		||||
@@ -1170,8 +1170,9 @@ ProjectPart::Ptr CppModelManager::fallbackProjectPart()
 | 
			
		||||
 | 
			
		||||
    // Do not activate ObjectiveCExtensions since this will lead to the
 | 
			
		||||
    // "objective-c++" language option for a project-less *.cpp file.
 | 
			
		||||
    part->languageExtensions = ProjectPart::AllExtensions;
 | 
			
		||||
    part->languageExtensions &= ~ProjectPart::ObjectiveCExtensions;
 | 
			
		||||
    part->languageExtensions = ProjectExplorer::LanguageExtension::All;
 | 
			
		||||
    part->languageExtensions &= ~ProjectExplorer::LanguageExtensions(
 | 
			
		||||
        ProjectExplorer::LanguageExtension::ObjectiveC);
 | 
			
		||||
 | 
			
		||||
    part->qtVersion = ProjectPart::Qt5;
 | 
			
		||||
    part->updateLanguageFeatures();
 | 
			
		||||
 
 | 
			
		||||
@@ -68,16 +68,16 @@ public:
 | 
			
		||||
        if (m_tcInfo.macroInspectionRunner) {
 | 
			
		||||
            auto macroInspectionReport = m_tcInfo.macroInspectionRunner(m_flags.commandLineFlags);
 | 
			
		||||
            m_projectPart.toolChainMacros = macroInspectionReport.macros;
 | 
			
		||||
            m_projectPart.languageVersion = static_cast<ProjectPart::LanguageVersion>(
 | 
			
		||||
                macroInspectionReport.languageVersion);
 | 
			
		||||
            m_projectPart.languageVersion = macroInspectionReport.languageVersion;
 | 
			
		||||
        } else { // No compiler set in kit.
 | 
			
		||||
            if (m_language == Language::C)
 | 
			
		||||
                m_projectPart.languageVersion = ProjectPart::LanguageVersion::LatestCVersion;
 | 
			
		||||
                m_projectPart.languageVersion = ProjectExplorer::LanguageVersion::LatestC;
 | 
			
		||||
            if (m_language == Language::CXX)
 | 
			
		||||
                m_projectPart.languageVersion = ProjectPart::LanguageVersion::LatestCxxVersion;
 | 
			
		||||
                m_projectPart.languageVersion = ProjectExplorer::LanguageVersion::LatestCxx;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        mapLanguageExtensions();
 | 
			
		||||
        m_projectPart.languageExtensions = m_flags.languageExtensions;
 | 
			
		||||
 | 
			
		||||
        addHeaderPaths();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -89,25 +89,6 @@ private:
 | 
			
		||||
                : ProjectPart::WordWidth32Bit;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void mapLanguageExtensions()
 | 
			
		||||
    {
 | 
			
		||||
        using namespace ProjectExplorer;
 | 
			
		||||
 | 
			
		||||
        const ToolChain::CompilerFlags &compilerFlags = m_flags.compilerFlags;
 | 
			
		||||
        ProjectPart::LanguageExtensions &languageExtensions = m_projectPart.languageExtensions;
 | 
			
		||||
 | 
			
		||||
        if (compilerFlags & ToolChain::BorlandExtensions)
 | 
			
		||||
            languageExtensions |= ProjectPart::BorlandExtensions;
 | 
			
		||||
        if (compilerFlags & ToolChain::GnuExtensions)
 | 
			
		||||
            languageExtensions |= ProjectPart::GnuExtensions;
 | 
			
		||||
        if (compilerFlags & ToolChain::MicrosoftExtensions)
 | 
			
		||||
            languageExtensions |= ProjectPart::MicrosoftExtensions;
 | 
			
		||||
        if (compilerFlags & ToolChain::OpenMP)
 | 
			
		||||
            languageExtensions |= ProjectPart::OpenMPExtensions;
 | 
			
		||||
        if (compilerFlags & ToolChain::ObjectiveC)
 | 
			
		||||
            languageExtensions |= ProjectPart::ObjectiveCExtensions;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void addHeaderPaths()
 | 
			
		||||
    {
 | 
			
		||||
        if (!m_tcInfo.headerPathsRunner)
 | 
			
		||||
@@ -181,6 +162,8 @@ static ProjectPart::Ptr projectPartFromRawProjectPart(const RawProjectPart &rawP
 | 
			
		||||
 | 
			
		||||
QVector<ProjectPart::Ptr> ProjectInfoGenerator::createProjectParts(const RawProjectPart &rawProjectPart)
 | 
			
		||||
{
 | 
			
		||||
    using ProjectExplorer::LanguageExtension;
 | 
			
		||||
 | 
			
		||||
    QVector<ProjectPart::Ptr> result;
 | 
			
		||||
    ProjectFileCategorizer cat(rawProjectPart.displayName,
 | 
			
		||||
                               rawProjectPart.files,
 | 
			
		||||
@@ -196,7 +179,7 @@ QVector<ProjectPart::Ptr> ProjectInfoGenerator::createProjectParts(const RawProj
 | 
			
		||||
                                        cat.cxxSources(),
 | 
			
		||||
                                        cat.partName("C++"),
 | 
			
		||||
                                        Language::CXX,
 | 
			
		||||
                                        ProjectPart::NoExtensions);
 | 
			
		||||
                                        LanguageExtension::None);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (cat.hasObjcxxSources()) {
 | 
			
		||||
@@ -205,7 +188,7 @@ QVector<ProjectPart::Ptr> ProjectInfoGenerator::createProjectParts(const RawProj
 | 
			
		||||
                                        cat.objcxxSources(),
 | 
			
		||||
                                        cat.partName("Obj-C++"),
 | 
			
		||||
                                        Language::CXX,
 | 
			
		||||
                                        ProjectPart::ObjectiveCExtensions);
 | 
			
		||||
                                        LanguageExtension::ObjectiveC);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (cat.hasCSources()) {
 | 
			
		||||
@@ -214,7 +197,7 @@ QVector<ProjectPart::Ptr> ProjectInfoGenerator::createProjectParts(const RawProj
 | 
			
		||||
                                        cat.cSources(),
 | 
			
		||||
                                        cat.partName("C"),
 | 
			
		||||
                                        Language::C,
 | 
			
		||||
                                        ProjectPart::NoExtensions);
 | 
			
		||||
                                        LanguageExtension::None);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (cat.hasObjcSources()) {
 | 
			
		||||
@@ -223,18 +206,19 @@ QVector<ProjectPart::Ptr> ProjectInfoGenerator::createProjectParts(const RawProj
 | 
			
		||||
                                        cat.objcSources(),
 | 
			
		||||
                                        cat.partName("Obj-C"),
 | 
			
		||||
                                        Language::C,
 | 
			
		||||
                                        ProjectPart::ObjectiveCExtensions);
 | 
			
		||||
                                        LanguageExtension::ObjectiveC);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ProjectPart::Ptr ProjectInfoGenerator::createProjectPart(const RawProjectPart &rawProjectPart,
 | 
			
		||||
                                                         const ProjectPart::Ptr &templateProjectPart,
 | 
			
		||||
                                                         const ProjectFiles &projectFiles,
 | 
			
		||||
                                                         const QString &partName,
 | 
			
		||||
                                                         Language language,
 | 
			
		||||
                                                         ProjectPart::LanguageExtensions languageExtensions)
 | 
			
		||||
ProjectPart::Ptr ProjectInfoGenerator::createProjectPart(
 | 
			
		||||
    const RawProjectPart &rawProjectPart,
 | 
			
		||||
    const ProjectPart::Ptr &templateProjectPart,
 | 
			
		||||
    const ProjectFiles &projectFiles,
 | 
			
		||||
    const QString &partName,
 | 
			
		||||
    Language language,
 | 
			
		||||
    ProjectExplorer::LanguageExtensions languageExtensions)
 | 
			
		||||
{
 | 
			
		||||
    ProjectPart::Ptr part(templateProjectPart->copy());
 | 
			
		||||
    part->displayName = partName;
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ private:
 | 
			
		||||
                                       const ProjectFiles &projectFiles,
 | 
			
		||||
                                       const QString &partName,
 | 
			
		||||
                                       Language language,
 | 
			
		||||
                                       ProjectPart::LanguageExtensions languageExtensions);
 | 
			
		||||
                                       ProjectExplorer::LanguageExtensions languageExtensions);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    const QFutureInterface<void> m_futureInterface;
 | 
			
		||||
 
 | 
			
		||||
@@ -116,7 +116,8 @@ private:
 | 
			
		||||
 | 
			
		||||
    bool isPreferredLanguage(const ProjectPart &projectPart) const
 | 
			
		||||
    {
 | 
			
		||||
        const bool isCProjectPart = projectPart.languageVersion <= ProjectPart::LatestCVersion;
 | 
			
		||||
        const bool isCProjectPart = projectPart.languageVersion
 | 
			
		||||
                                    <= ProjectExplorer::LanguageVersion::LatestC;
 | 
			
		||||
        return (m_languagePreference == Language::C && isCProjectPart)
 | 
			
		||||
            || (m_languagePreference == Language::Cxx && !isCProjectPart);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ RawProjectPartFlags::RawProjectPartFlags(const ProjectExplorer::ToolChain *toolC
 | 
			
		||||
    if (toolChain) {
 | 
			
		||||
        this->commandLineFlags = commandLineFlags;
 | 
			
		||||
        warningFlags = toolChain->warningFlags(commandLineFlags);
 | 
			
		||||
        compilerFlags = toolChain->compilerFlags(commandLineFlags);
 | 
			
		||||
        languageExtensions = toolChain->languageExtensions(commandLineFlags);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -28,6 +28,7 @@
 | 
			
		||||
#include "cpptools_global.h"
 | 
			
		||||
#include "projectpart.h"
 | 
			
		||||
 | 
			
		||||
#include <projectexplorer/language.h>
 | 
			
		||||
#include <projectexplorer/toolchain.h>
 | 
			
		||||
 | 
			
		||||
#include <functional>
 | 
			
		||||
@@ -45,8 +46,7 @@ public:
 | 
			
		||||
    QStringList commandLineFlags;
 | 
			
		||||
    // The following are deduced from commandLineFlags.
 | 
			
		||||
    ProjectExplorer::WarningFlags warningFlags = ProjectExplorer::WarningFlags::Default;
 | 
			
		||||
    ProjectExplorer::ToolChain::CompilerFlags compilerFlags
 | 
			
		||||
        = ProjectExplorer::ToolChain::CompilerFlag::NoFlags;
 | 
			
		||||
    ProjectExplorer::LanguageExtensions languageExtensions = ProjectExplorer::LanguageExtension::None;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class CPPTOOLS_EXPORT RawProjectPart
 | 
			
		||||
 
 | 
			
		||||
@@ -35,12 +35,13 @@ namespace CppTools {
 | 
			
		||||
 | 
			
		||||
void ProjectPart::updateLanguageFeatures()
 | 
			
		||||
{
 | 
			
		||||
    const bool hasCxx = languageVersion >= CXX98;
 | 
			
		||||
    const bool hasCxx = languageVersion >= ProjectExplorer::LanguageVersion::CXX98;
 | 
			
		||||
    const bool hasQt = hasCxx && qtVersion != NoQt;
 | 
			
		||||
    languageFeatures.cxx11Enabled = languageVersion >= CXX11;
 | 
			
		||||
    languageFeatures.cxx11Enabled = languageVersion >= ProjectExplorer::LanguageVersion::CXX11;
 | 
			
		||||
    languageFeatures.cxxEnabled = hasCxx;
 | 
			
		||||
    languageFeatures.c99Enabled = languageVersion >= C99;
 | 
			
		||||
    languageFeatures.objCEnabled = languageExtensions.testFlag(ObjectiveCExtensions);
 | 
			
		||||
    languageFeatures.c99Enabled = languageVersion >= ProjectExplorer::LanguageVersion::C99;
 | 
			
		||||
    languageFeatures.objCEnabled = languageExtensions.testFlag(
 | 
			
		||||
        ProjectExplorer::LanguageExtension::ObjectiveC);
 | 
			
		||||
    languageFeatures.qtEnabled = hasQt;
 | 
			
		||||
    languageFeatures.qtMocRunEnabled = hasQt;
 | 
			
		||||
    if (!hasQt) {
 | 
			
		||||
 
 | 
			
		||||
@@ -30,6 +30,7 @@
 | 
			
		||||
#include "cppprojectfile.h"
 | 
			
		||||
 | 
			
		||||
#include <projectexplorer/headerpath.h>
 | 
			
		||||
#include <projectexplorer/language.h>
 | 
			
		||||
#include <projectexplorer/projectexplorer_global.h>
 | 
			
		||||
#include <projectexplorer/projectmacro.h>
 | 
			
		||||
 | 
			
		||||
@@ -49,38 +50,6 @@ namespace CppTools {
 | 
			
		||||
class CPPTOOLS_EXPORT ProjectPart
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    // Keep in sync with Toolchain::LanguageVersion!
 | 
			
		||||
    enum LanguageVersion {
 | 
			
		||||
        C89,
 | 
			
		||||
        C99,
 | 
			
		||||
        C11,
 | 
			
		||||
        C18,
 | 
			
		||||
        LatestCVersion = C18,
 | 
			
		||||
        CXX98,
 | 
			
		||||
        CXX03,
 | 
			
		||||
        CXX11,
 | 
			
		||||
        CXX14,
 | 
			
		||||
        CXX17,
 | 
			
		||||
        CXX2a,
 | 
			
		||||
        LatestCxxVersion = CXX2a,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    enum LanguageExtension {
 | 
			
		||||
        NoExtensions         = 0,
 | 
			
		||||
        GnuExtensions        = 1 << 0,
 | 
			
		||||
        MicrosoftExtensions  = 1 << 1,
 | 
			
		||||
        BorlandExtensions    = 1 << 2,
 | 
			
		||||
        OpenMPExtensions     = 1 << 3,
 | 
			
		||||
        ObjectiveCExtensions = 1 << 4,
 | 
			
		||||
 | 
			
		||||
        AllExtensions = GnuExtensions
 | 
			
		||||
                      | MicrosoftExtensions
 | 
			
		||||
                      | BorlandExtensions
 | 
			
		||||
                      | OpenMPExtensions
 | 
			
		||||
                      | ObjectiveCExtensions
 | 
			
		||||
    };
 | 
			
		||||
    Q_DECLARE_FLAGS(LanguageExtensions, LanguageExtension)
 | 
			
		||||
 | 
			
		||||
    enum QtVersion {
 | 
			
		||||
        UnknownQt = -1,
 | 
			
		||||
        NoQt,
 | 
			
		||||
@@ -129,8 +98,8 @@ public:
 | 
			
		||||
 | 
			
		||||
    ProjectExplorer::Macros projectMacros;
 | 
			
		||||
 | 
			
		||||
    LanguageVersion languageVersion = LatestCxxVersion;
 | 
			
		||||
    LanguageExtensions languageExtensions = NoExtensions;
 | 
			
		||||
    ProjectExplorer::LanguageVersion languageVersion = ProjectExplorer::LanguageVersion::LatestCxx;
 | 
			
		||||
    ProjectExplorer::LanguageExtensions languageExtensions = ProjectExplorer::LanguageExtension::None;
 | 
			
		||||
    ProjectExplorer::WarningFlags warningFlags = ProjectExplorer::WarningFlags::Default;
 | 
			
		||||
    QtVersion qtVersion = UnknownQt;
 | 
			
		||||
    CPlusPlus::LanguageFeatures languageFeatures;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user