forked from qt-creator/qt-creator
CppTools: set default -std=c++11 for Qt4
qmake from Qt4 does not provide C++ standard and clang can't properly compile Qt4.8.6 and earlier with c++1z. Behavior in this commit mimics qmake from Qt5 which also provides c++11 as a default standard. Task-number: QTCREATORBUG-16441 Change-Id: I3d29891d6e47f2367f2b3b2bf4be4d86661924e9 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
@@ -144,7 +144,8 @@ QString Utils::toString(ProjectPart::QtVersion qtVersion)
|
||||
switch (qtVersion) {
|
||||
CASE_QTVERSION(UnknownQt);
|
||||
CASE_QTVERSION(NoQt);
|
||||
CASE_QTVERSION(Qt4);
|
||||
CASE_QTVERSION(Qt4_8_6AndOlder);
|
||||
CASE_QTVERSION(Qt4Latest);
|
||||
CASE_QTVERSION(Qt5);
|
||||
// no default to get a compiler warning if anything is added
|
||||
}
|
||||
|
||||
@@ -205,12 +205,15 @@ void ProjectInfoGenerator::createProjectParts(const RawProjectPart &rawProjectPa
|
||||
const ProjectPart::Ptr part = projectPartFromRawProjectPart(rawProjectPart,
|
||||
m_projectUpdateInfo.project);
|
||||
|
||||
ProjectPart::LanguageVersion defaultVersion = ProjectPart::LatestCxxVersion;
|
||||
if (rawProjectPart.qtVersion == ProjectPart::Qt4_8_6AndOlder)
|
||||
defaultVersion = ProjectPart::CXX11;
|
||||
if (cat.hasCxxSources()) {
|
||||
createProjectPart(rawProjectPart,
|
||||
part,
|
||||
cat.cxxSources(),
|
||||
cat.partName("C++"),
|
||||
ProjectPart::LatestCxxVersion,
|
||||
defaultVersion,
|
||||
ProjectPart::NoExtensions);
|
||||
}
|
||||
|
||||
@@ -219,7 +222,7 @@ void ProjectInfoGenerator::createProjectParts(const RawProjectPart &rawProjectPa
|
||||
part,
|
||||
cat.objcxxSources(),
|
||||
cat.partName("Obj-C++"),
|
||||
ProjectPart::LatestCxxVersion,
|
||||
defaultVersion,
|
||||
ProjectPart::ObjectiveCExtensions);
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +80,8 @@ public:
|
||||
enum QtVersion {
|
||||
UnknownQt = -1,
|
||||
NoQt,
|
||||
Qt4,
|
||||
Qt4_8_6AndOlder,
|
||||
Qt4Latest,
|
||||
Qt5
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user