summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools')
-rw-r--r--src/plugins/cpptools/cppcodemodelinspectordumper.cpp62
-rw-r--r--src/plugins/cpptools/cppcodemodelinspectordumper.h5
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp5
-rw-r--r--src/plugins/cpptools/cppmodelmanager_test.cpp32
-rw-r--r--src/plugins/cpptools/cppprojects.cpp93
-rw-r--r--src/plugins/cpptools/cppprojects.h42
6 files changed, 115 insertions, 124 deletions
diff --git a/src/plugins/cpptools/cppcodemodelinspectordumper.cpp b/src/plugins/cpptools/cppcodemodelinspectordumper.cpp
index 87c46ffe7b..7f0d03932b 100644
--- a/src/plugins/cpptools/cppcodemodelinspectordumper.cpp
+++ b/src/plugins/cpptools/cppcodemodelinspectordumper.cpp
@@ -90,44 +90,38 @@ QString Utils::toString(CPlusPlus::Document::DiagnosticMessage::Level level)
return QString();
}
-QString Utils::toString(ProjectPart::CVersion cVersion)
+QString Utils::toString(ProjectPart::LanguageVersion languageVersion)
{
-#define CASE_CVERSION(x) case ProjectPart::x: return QLatin1String(#x)
- switch (cVersion) {
- CASE_CVERSION(C89);
- CASE_CVERSION(C99);
- CASE_CVERSION(C11);
+#define CASE_LANGUAGEVERSION(x) case ProjectPart::x: return QLatin1String(#x)
+ switch (languageVersion) {
+ CASE_LANGUAGEVERSION(C89);
+ CASE_LANGUAGEVERSION(C99);
+ CASE_LANGUAGEVERSION(C11);
+ CASE_LANGUAGEVERSION(CXX98);
+ CASE_LANGUAGEVERSION(CXX03);
+ CASE_LANGUAGEVERSION(CXX11);
+ CASE_LANGUAGEVERSION(CXX14);
+ CASE_LANGUAGEVERSION(CXX17);
// no default to get a compiler warning if anything is added
}
-#undef CASE_CVERSION
+#undef CASE_LANGUAGEVERSION
return QString();
}
-QString Utils::toString(ProjectPart::CXXVersion cxxVersion)
-{
-#define CASE_CXXVERSION(x) case ProjectPart::x: return QLatin1String(#x)
- switch (cxxVersion) {
- CASE_CXXVERSION(CXX98);
- CASE_CXXVERSION(CXX11);
- // no default to get a compiler warning if anything is added
- }
-#undef CASE_CXXVERSION
- return QString();
-}
-
-QString Utils::toString(ProjectPart::CXXExtensions cxxExtension)
+QString Utils::toString(ProjectPart::LanguageExtensions languageExtension)
{
QString result;
-#define CASE_CXXEXTENSION(ext) if (cxxExtension & ProjectPart::ext) \
+#define CASE_LANGUAGE_EXTENSION(ext) if (languageExtension & ProjectPart::ext) \
result += QLatin1String(#ext ", ");
- CASE_CXXEXTENSION(NoExtensions);
- CASE_CXXEXTENSION(GnuExtensions);
- CASE_CXXEXTENSION(MicrosoftExtensions);
- CASE_CXXEXTENSION(BorlandExtensions);
- CASE_CXXEXTENSION(OpenMPExtensions);
-#undef CASE_CXXEXTENSION
+ CASE_LANGUAGE_EXTENSION(NoExtensions);
+ CASE_LANGUAGE_EXTENSION(GnuExtensions);
+ CASE_LANGUAGE_EXTENSION(MicrosoftExtensions);
+ CASE_LANGUAGE_EXTENSION(BorlandExtensions);
+ CASE_LANGUAGE_EXTENSION(OpenMPExtensions);
+ CASE_LANGUAGE_EXTENSION(ObjectiveCExtensions);
+#undef CASE_LANGUAGE_EXTENSION
if (result.endsWith(QLatin1String(", ")))
result.chop(2);
return result;
@@ -496,13 +490,13 @@ void Dumper::dumpProjectInfos( const QList<ProjectInfo> &projectInfos)
if (!part->projectConfigFile.isEmpty())
m_out << i3 << "Project Config File: " << part->projectConfigFile << "\n";
m_out << i2 << "Project Part \"" << part->projectFile << "\"{{{3\n";
- m_out << i3 << "Project Part Name : " << part->displayName << "\n";
- m_out << i3 << "Project Name : " << projectName << "\n";
- m_out << i3 << "Project File : " << projectFilePath << "\n";
- m_out << i3 << "C Version : " << Utils::toString(part->cVersion) << "\n";
- m_out << i3 << "CXX Version : " << Utils::toString(part->cxxVersion) << "\n";
- m_out << i3 << "CXX Extensions : " << Utils::toString(part->cxxExtensions) << "\n";
- m_out << i3 << "Qt Version : " << Utils::toString(part->qtVersion) << "\n";
+ m_out << i3 << "Project Part Name : " << part->displayName << "\n";
+ m_out << i3 << "Project Name : " << projectName << "\n";
+ m_out << i3 << "Project File : " << projectFilePath << "\n";
+ m_out << i3 << "Lanugage Version : " << Utils::toString(part->languageVersion)<<"\n";
+ m_out << i3 << "Lanugage Extensions : " << Utils::toString(part->languageExtensions)
+ << "\n";
+ m_out << i3 << "Qt Version : " << Utils::toString(part->qtVersion) << "\n";
if (!part->files.isEmpty()) {
m_out << i3 << "Files:{{{4\n";
diff --git a/src/plugins/cpptools/cppcodemodelinspectordumper.h b/src/plugins/cpptools/cppcodemodelinspectordumper.h
index 5f4c4620d0..0226ef5de5 100644
--- a/src/plugins/cpptools/cppcodemodelinspectordumper.h
+++ b/src/plugins/cpptools/cppcodemodelinspectordumper.h
@@ -48,9 +48,8 @@ struct CPPTOOLS_EXPORT Utils
static QString toString(const QDateTime &dateTime);
static QString toString(CPlusPlus::Document::CheckMode checkMode);
static QString toString(CPlusPlus::Document::DiagnosticMessage::Level level);
- static QString toString(CppTools::ProjectPart::CVersion cVersion);
- static QString toString(CppTools::ProjectPart::CXXVersion cxxVersion);
- static QString toString(CppTools::ProjectPart::CXXExtensions cxxExtension);
+ static QString toString(CppTools::ProjectPart::LanguageVersion languageVersion);
+ static QString toString(CppTools::ProjectPart::LanguageExtensions languageExtension);
static QString toString(CppTools::ProjectPart::QtVersion qtVersion);
static QString toString(const QList<CppTools::ProjectFile> &projectFiles);
static QString toString(CppTools::ProjectFile::Kind kind);
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 931f4c580f..20b630e892 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -746,9 +746,8 @@ ProjectPart::Ptr CppModelManager::fallbackProjectPart() const
part->projectDefines = m_definedMacros;
part->headerPaths = m_headerPaths;
- part->cVersion = ProjectPart::C11;
- part->cxxVersion = ProjectPart::CXX11;
- part->cxxExtensions = ProjectPart::AllExtensions;
+ part->languageVersion = ProjectPart::CXX14;
+ part->languageExtensions = ProjectPart::AllExtensions;
part->qtVersion = ProjectPart::Qt5;
return part;
diff --git a/src/plugins/cpptools/cppmodelmanager_test.cpp b/src/plugins/cpptools/cppmodelmanager_test.cpp
index 95d9c5b816..32c5e5c0bf 100644
--- a/src/plugins/cpptools/cppmodelmanager_test.cpp
+++ b/src/plugins/cpptools/cppmodelmanager_test.cpp
@@ -97,7 +97,7 @@ public:
QCOMPARE(projectInfo.project().data(), project);
ProjectPart::Ptr part(new ProjectPart);
- part->cxxVersion = ProjectPart::CXX98;
+ part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5;
foreach (const QString &file, projectFiles) {
ProjectFile projectFile(file, ProjectFile::classify(file));
@@ -221,7 +221,7 @@ void CppToolsPlugin::test_modelmanager_paths_are_clean()
typedef ProjectPart::HeaderPath HeaderPath;
ProjectPart::Ptr part(new ProjectPart);
- part->cxxVersion = ProjectPart::CXX98;
+ part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5;
part->projectDefines = QByteArray("#define OH_BEHAVE -1\n");
part->headerPaths = QList<HeaderPath>()
@@ -257,7 +257,7 @@ void CppToolsPlugin::test_modelmanager_framework_headers()
typedef ProjectPart::HeaderPath HeaderPath;
ProjectPart::Ptr part(new ProjectPart);
- part->cxxVersion = ProjectPart::CXX98;
+ part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5;
part->projectDefines = QByteArray("#define OH_BEHAVE -1\n");
part->headerPaths = QList<HeaderPath>()
@@ -310,7 +310,7 @@ void CppToolsPlugin::test_modelmanager_refresh_also_includes_of_project_files()
typedef ProjectPart::HeaderPath HeaderPath;
ProjectPart::Ptr part(new ProjectPart);
- part->cxxVersion = ProjectPart::CXX98;
+ part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5;
part->projectDefines = QByteArray("#define OH_BEHAVE -1\n");
part->headerPaths = QList<HeaderPath>()
@@ -371,7 +371,7 @@ void CppToolsPlugin::test_modelmanager_refresh_several_times()
QCOMPARE(pi.project().data(), project);
ProjectPart::Ptr part(new ProjectPart);
- part->cxxVersion = ProjectPart::CXX98;
+ part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5;
part->files.append(ProjectFile(testHeader1, ProjectFile::CXXHeader));
part->files.append(ProjectFile(testHeader2, ProjectFile::CXXHeader));
@@ -391,7 +391,7 @@ void CppToolsPlugin::test_modelmanager_refresh_several_times()
// Simulate project configuration change by having different defines each time.
defines += "\n#define ANOTHER_DEFINE";
part->projectDefines = defines;
- part->cxxVersion = ProjectPart::CXX98;
+ part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5;
part->files.append(ProjectFile(testHeader1, ProjectFile::CXXHeader));
part->files.append(ProjectFile(testHeader2, ProjectFile::CXXHeader));
@@ -438,7 +438,7 @@ void CppToolsPlugin::test_modelmanager_refresh_test_for_changes()
QCOMPARE(pi.project().data(), project);
ProjectPart::Ptr part(new ProjectPart);
- part->cxxVersion = ProjectPart::CXX98;
+ part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5;
part->files.append(ProjectFile(testCpp, ProjectFile::CXXSource));
pi.appendProjectPart(part);
@@ -476,7 +476,7 @@ void CppToolsPlugin::test_modelmanager_refresh_added_and_purge_removed()
QCOMPARE(pi.project().data(), project);
ProjectPart::Ptr part(new ProjectPart);
- part->cxxVersion = ProjectPart::CXX98;
+ part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5;
part->files.append(ProjectFile(testCpp, ProjectFile::CXXSource));
part->files.append(ProjectFile(testHeader1, ProjectFile::CXXHeader));
@@ -499,7 +499,7 @@ void CppToolsPlugin::test_modelmanager_refresh_added_and_purge_removed()
// Now add testHeader2 and remove testHeader1
pi.clearProjectParts();
ProjectPart::Ptr newPart(new ProjectPart);
- newPart->cxxVersion = ProjectPart::CXX98;
+ newPart->languageVersion = ProjectPart::CXX14;
newPart->qtVersion = ProjectPart::Qt5;
newPart->files.append(ProjectFile(testCpp, ProjectFile::CXXSource));
newPart->files.append(ProjectFile(testHeader2, ProjectFile::CXXHeader));
@@ -535,7 +535,7 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_
QCOMPARE(pi.project().data(), project);
ProjectPart::Ptr part(new ProjectPart);
- part->cxxVersion = ProjectPart::CXX98;
+ part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5;
foreach (const ProjectFile &file, initialProjectFiles)
part->files.append(file);
@@ -829,7 +829,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_project()
part1->projectFile = QLatin1String("project1.projectfile");
part1->files.append(ProjectFile(main1File, ProjectFile::CXXSource));
part1->files.append(ProjectFile(header, ProjectFile::CXXHeader));
- part1->cxxVersion = ProjectPart::CXX11;
+ part1->languageVersion = ProjectPart::CXX11;
part1->qtVersion = ProjectPart::NoQt;
part1->projectDefines = QByteArray("#define SUB1\n");
part1->headerPaths = QList<HeaderPath>()
@@ -839,7 +839,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_project()
part2->projectFile = QLatin1String("project1.projectfile");
part2->files.append(ProjectFile(main2File, ProjectFile::CXXSource));
part2->files.append(ProjectFile(header, ProjectFile::CXXHeader));
- part2->cxxVersion = ProjectPart::CXX11;
+ part2->languageVersion = ProjectPart::CXX11;
part2->qtVersion = ProjectPart::NoQt;
part2->projectDefines = QByteArray("#define SUB2\n");
part2->headerPaths = QList<HeaderPath>()
@@ -905,7 +905,7 @@ void CppToolsPlugin::test_modelmanager_precompiled_headers()
part1->projectFile = QLatin1String("project1.projectfile");
part1->files.append(ProjectFile(main1File, ProjectFile::CXXSource));
part1->files.append(ProjectFile(header, ProjectFile::CXXHeader));
- part1->cxxVersion = ProjectPart::CXX11;
+ part1->languageVersion = ProjectPart::CXX11;
part1->qtVersion = ProjectPart::NoQt;
part1->precompiledHeaders.append(pch1File);
part1->headerPaths = QList<HeaderPath>()
@@ -915,7 +915,7 @@ void CppToolsPlugin::test_modelmanager_precompiled_headers()
part2->projectFile = QLatin1String("project2.projectfile");
part2->files.append(ProjectFile(main2File, ProjectFile::CXXSource));
part2->files.append(ProjectFile(header, ProjectFile::CXXHeader));
- part2->cxxVersion = ProjectPart::CXX11;
+ part2->languageVersion = ProjectPart::CXX11;
part2->qtVersion = ProjectPart::NoQt;
part2->precompiledHeaders.append(pch2File);
part2->headerPaths = QList<HeaderPath>()
@@ -989,7 +989,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_editor()
ProjectPart::Ptr part1(new ProjectPart);
part1->files.append(ProjectFile(main1File, ProjectFile::CXXSource));
part1->files.append(ProjectFile(header, ProjectFile::CXXHeader));
- part1->cxxVersion = ProjectPart::CXX11;
+ part1->languageVersion = ProjectPart::CXX11;
part1->qtVersion = ProjectPart::NoQt;
part1->headerPaths = QList<HeaderPath>()
<< HeaderPath(testDataDirectory.includeDir(false), HeaderPath::IncludePath);
@@ -997,7 +997,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_editor()
ProjectPart::Ptr part2(new ProjectPart);
part2->files.append(ProjectFile(main2File, ProjectFile::CXXSource));
part2->files.append(ProjectFile(header, ProjectFile::CXXHeader));
- part2->cxxVersion = ProjectPart::CXX11;
+ part2->languageVersion = ProjectPart::CXX11;
part2->qtVersion = ProjectPart::NoQt;
part2->headerPaths = QList<HeaderPath>()
<< HeaderPath(testDataDirectory.includeDir(false), HeaderPath::IncludePath);
diff --git a/src/plugins/cpptools/cppprojects.cpp b/src/plugins/cpptools/cppprojects.cpp
index 5f4e1f009f..919ec579c6 100644
--- a/src/plugins/cpptools/cppprojects.cpp
+++ b/src/plugins/cpptools/cppprojects.cpp
@@ -44,12 +44,10 @@ using namespace ProjectExplorer;
ProjectPart::ProjectPart()
: project(0)
- , cVersion(C89)
- , cxxVersion(CXX11)
- , cxxExtensions(NoExtensions)
+ , languageVersion(CXX14)
+ , languageExtensions(NoExtensions)
, qtVersion(UnknownQt)
- , cWarningFlags(ProjectExplorer::ToolChain::WarningsDefault)
- , cxxWarningFlags(ProjectExplorer::ToolChain::WarningsDefault)
+ , warningFlags(ProjectExplorer::ToolChain::WarningsDefault)
{
}
@@ -61,43 +59,42 @@ ProjectPart::ProjectPart()
\param cflags C or ObjectiveC flags if possible, \a cxxflags otherwise.
*/
void ProjectPart::evaluateToolchain(const ProjectExplorer::ToolChain *tc,
- const QStringList &cxxflags,
- const QStringList &cflags,
+ const QStringList &commandLineFlags,
const Utils::FileName &sysRoot)
{
if (!tc)
return;
using namespace ProjectExplorer;
- ToolChain::CompilerFlags cxx = tc->compilerFlags(cxxflags);
- ToolChain::CompilerFlags c = (cxxflags == cflags)
- ? cxx : tc->compilerFlags(cflags);
-
- if (c & ToolChain::StandardC11)
- cVersion = C11;
- else if (c & ToolChain::StandardC99)
- cVersion = C99;
+ ToolChain::CompilerFlags flags = tc->compilerFlags(commandLineFlags);
+
+ if (flags & ToolChain::StandardC11)
+ languageVersion = C11;
+ else if (flags & ToolChain::StandardC99)
+ languageVersion = C99;
+ else if (flags & ToolChain::StandardCxx17)
+ languageVersion = CXX17;
+ else if (flags & ToolChain::StandardCxx14)
+ languageVersion = CXX14;
+ else if (flags & ToolChain::StandardCxx11)
+ languageVersion = CXX11;
else
- cVersion = C89;
-
- if (cxx & ToolChain::StandardCxx11)
- cxxVersion = CXX11;
- else
- cxxVersion = CXX98;
-
- if (cxx & ToolChain::BorlandExtensions)
- cxxExtensions |= BorlandExtensions;
- if (cxx & ToolChain::GnuExtensions)
- cxxExtensions |= GnuExtensions;
- if (cxx & ToolChain::MicrosoftExtensions)
- cxxExtensions |= MicrosoftExtensions;
- if (cxx & ToolChain::OpenMP)
- cxxExtensions |= OpenMPExtensions;
-
- cWarningFlags = tc->warningFlags(cflags);
- cxxWarningFlags = tc->warningFlags(cxxflags);
-
- const QList<ProjectExplorer::HeaderPath> headers = tc->systemHeaderPaths(cxxflags, sysRoot);
+ languageVersion = CXX11;
+
+ if (flags & ToolChain::BorlandExtensions)
+ languageExtensions |= BorlandExtensions;
+ if (flags & ToolChain::GnuExtensions)
+ languageExtensions |= GnuExtensions;
+ if (flags & ToolChain::MicrosoftExtensions)
+ languageExtensions |= MicrosoftExtensions;
+ if (flags & ToolChain::OpenMP)
+ languageExtensions |= OpenMPExtensions;
+ if (flags & ToolChain::ObjectiveC)
+ languageExtensions |= ObjectiveCExtensions;
+
+ warningFlags = tc->warningFlags(commandLineFlags);
+
+ const QList<ProjectExplorer::HeaderPath> headers = tc->systemHeaderPaths(commandLineFlags, sysRoot);
foreach (const ProjectExplorer::HeaderPath &header, headers) {
headerPaths << ProjectPart::HeaderPath(header.path(),
header.kind() == ProjectExplorer::HeaderPath::FrameworkHeaderPath
@@ -105,7 +102,7 @@ void ProjectPart::evaluateToolchain(const ProjectExplorer::ToolChain *tc,
: ProjectPart::HeaderPath::IncludePath);
}
- toolchainDefines = tc->predefinedMacros(cxxflags);
+ toolchainDefines = tc->predefinedMacros(commandLineFlags);
}
ProjectPart::Ptr ProjectPart::copy() const
@@ -389,7 +386,7 @@ QList<Core::Id> ProjectPartBuilder::createProjectPartsForFiles(const QStringList
createProjectPart(cat.cSources(),
cat.partName(QCoreApplication::translate("CppTools", "C11")),
ProjectPart::C11,
- ProjectPart::CXX11);
+ ProjectPart::NoExtensions);
// TODO: there is no C...
// languages += ProjectExplorer::Constants::LANG_C;
}
@@ -397,22 +394,22 @@ QList<Core::Id> ProjectPartBuilder::createProjectPartsForFiles(const QStringList
createProjectPart(cat.objcSources(),
cat.partName(QCoreApplication::translate("CppTools", "Obj-C11")),
ProjectPart::C11,
- ProjectPart::CXX11);
+ ProjectPart::ObjectiveCExtensions);
// TODO: there is no Ojective-C...
// languages += ProjectExplorer::Constants::LANG_OBJC;
}
if (cat.hasCxxSources()) {
createProjectPart(cat.cxxSources(),
cat.partName(QCoreApplication::translate("CppTools", "C++11")),
- ProjectPart::C11,
- ProjectPart::CXX11);
+ ProjectPart::CXX11,
+ ProjectPart::NoExtensions);
languages += ProjectExplorer::Constants::LANG_CXX;
}
if (cat.hasObjcxxSources()) {
createProjectPart(cat.objcxxSources(),
cat.partName(QCoreApplication::translate("CppTools", "Obj-C++11")),
- ProjectPart::C11,
- ProjectPart::CXX11);
+ ProjectPart::CXX11,
+ ProjectPart::ObjectiveCExtensions);
// TODO: there is no Objective-C++...
languages += ProjectExplorer::Constants::LANG_CXX;
}
@@ -422,18 +419,20 @@ QList<Core::Id> ProjectPartBuilder::createProjectPartsForFiles(const QStringList
void ProjectPartBuilder::createProjectPart(const QStringList &theSources,
const QString &partName,
- ProjectPart::CVersion cVersion,
- ProjectPart::CXXVersion cxxVersion)
+ ProjectPart::LanguageVersion languageVersion,
+ ProjectPart::LanguageExtensions languageExtensions)
{
CppTools::ProjectPart::Ptr part(m_templatePart->copy());
part->displayName = partName;
Kit *k = part->project->activeTarget()->kit();
if (ToolChain *tc = ToolChainKitInformation::toolChain(k))
- part->evaluateToolchain(tc, m_cFlags, m_cxxFlags, SysRootKitInformation::sysRoot(k));
+ part->evaluateToolchain(tc,
+ languageVersion >= ProjectPart::CXX98 ? m_cxxFlags
+ : m_cFlags,
+ SysRootKitInformation::sysRoot(k));
- part->cVersion = cVersion;
- part->cxxVersion = cxxVersion;
+ part->languageExtensions |= languageExtensions;
CppTools::ProjectFileAdder adder(part->files);
foreach (const QString &file, theSources)
diff --git a/src/plugins/cpptools/cppprojects.h b/src/plugins/cpptools/cppprojects.h
index c126b51e0f..f615b6345b 100644
--- a/src/plugins/cpptools/cppprojects.h
+++ b/src/plugins/cpptools/cppprojects.h
@@ -45,27 +45,29 @@ namespace CppTools {
class CPPTOOLS_EXPORT ProjectPart
{
public: // Types
- enum CVersion {
+ enum LanguageVersion {
C89,
C99,
- C11
- };
-
- enum CXXVersion {
+ C11,
CXX98,
- CXX11
+ CXX03,
+ CXX11,
+ CXX14,
+ CXX17
};
- enum CXXExtension {
- NoExtensions = 0x0,
- GnuExtensions = 0x1,
- MicrosoftExtensions = 0x2,
- BorlandExtensions = 0x4,
- OpenMPExtensions = 0x8,
+ 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(CXXExtensions, CXXExtension)
+ Q_DECLARE_FLAGS(LanguageExtensions, LanguageExtension)
enum QtVersion {
UnknownQt = -1,
@@ -101,8 +103,7 @@ public: // methods
ProjectPart();
void evaluateToolchain(const ProjectExplorer::ToolChain *tc,
- const QStringList &cxxflags,
- const QStringList &cflags,
+ const QStringList &commandLineFlags,
const Utils::FileName &sysRoot);
Ptr copy() const;
@@ -121,12 +122,10 @@ public: // fields
QByteArray toolchainDefines;
QList<HeaderPath> headerPaths;
QStringList precompiledHeaders;
- CVersion cVersion;
- CXXVersion cxxVersion;
- CXXExtensions cxxExtensions;
+ LanguageVersion languageVersion;
+ LanguageExtensions languageExtensions;
QtVersion qtVersion;
- ProjectExplorer::ToolChain::WarningFlags cWarningFlags;
- ProjectExplorer::ToolChain::WarningFlags cxxWarningFlags;
+ ProjectExplorer::ToolChain::WarningFlags warningFlags;
};
inline uint qHash(const ProjectPart::HeaderPath &key, uint seed = 0)
@@ -182,7 +181,8 @@ public:
private:
void createProjectPart(const QStringList &theSources, const QString &partName,
- ProjectPart::CVersion cVersion, ProjectPart::CXXVersion cxxVersion);
+ ProjectPart::LanguageVersion languageVersion,
+ ProjectPart::LanguageExtensions languageExtensions);
private:
ProjectPart::Ptr m_templatePart;