diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index ffc6d6ecd1..81a8970797 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -738,8 +738,8 @@ void Project::createPropertyEditors (PropertyListBuilder& props) "The namespace containing the binary assests."); props.add (new ChoicePropertyComponent (cppStandardValue, "C++ Language Standard", - { "C++11", "C++14", "Use Latest" }, - { "11", "14", "latest" }), + { "C++11", "C++14", "C++17", "Use Latest" }, + { "11", "14", "17", "latest" }), "The standard of the C++ language that will be used for compilation."); props.add (new TextPropertyComponent (preprocessorDefsValue, "Preprocessor Definitions", 32768, true), diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h index d2be2ac059..89c6111871 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h @@ -1441,7 +1441,7 @@ private: auto cppStandard = project.getCppStandardString(); - if (cppStandard == "latest") + if (cppStandard == "latest" || cppStandard == "17") // C++17 flag isn't supported yet so use 1z for now cppStandard = "1z"; cppStandard = "-std=" + String (shouldUseGNUExtensions() ? "gnu++" : "c++") + cppStandard; diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h index e3e8e5d7ca..9bea808114 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h @@ -455,7 +455,7 @@ private: auto cxxStandard = project.getCppStandardString(); if (cxxStandard == "latest") - cxxStandard = "1z"; + cxxStandard = "17"; out << " CXX_STANDARD " << cxxStandard << newLine; @@ -584,7 +584,7 @@ private: auto cxxStandard = project.getCppStandardString(); if (cxxStandard == "latest") - cxxStandard = "1z"; + cxxStandard = "17"; out << " CXX_STANDARD " << cxxStandard << newLine; @@ -980,7 +980,7 @@ private: auto cxxStandard = project.getCppStandardString(); if (cxxStandard == "latest") - cxxStandard = "1z"; + cxxStandard = "17"; out << " CXX_STANDARD " << cxxStandard << newLine; diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h index b3edce9b11..f0d59a5183 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h @@ -426,7 +426,7 @@ private: auto cppStandard = config.project.getCppStandardString(); if (cppStandard == "latest") - cppStandard = "1z"; + cppStandard = "17"; cppStandard = "-std=" + String (shouldUseGNUExtensions() ? "gnu++" : "c++") + cppStandard; diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h index 7fe9882fda..e8033ded7b 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h @@ -566,8 +566,10 @@ public: auto cppStandard = owner.project.getCppStandardString(); - if (cppStandard == "11") // unfortunaly VS doesn't support the C++11 flag so we have to bump it to C++14 + if (cppStandard == "11") // VS doesn't support the C++11 flag so we have to bump it to C++14 cppStandard = "14"; + else if (cppStandard == "17") // nor does it support the C++17 flag, so we'll just use latest for now until it's added + cppStandard = "latest"; cl->createNewChildElement ("LanguageStandard")->addTextElement ("stdcpp" + cppStandard); } diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h index 04b4af4a81..e4e42251c4 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h @@ -535,7 +535,7 @@ private: auto cppStandard = project.getCppStandardString(); if (cppStandard == "latest") - cppStandard = "1z"; + cppStandard = "17"; cppStandard = "-std=" + String (shouldUseGNUExtensions() ? "gnu++" : "c++") + cppStandard; diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h index a614515139..0b29b1a299 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h @@ -1119,7 +1119,7 @@ public: auto cppStandard = owner.project.getCppStandardString(); if (cppStandard == "latest") - cppStandard = "1z"; + cppStandard = "17"; s.set ("CLANG_CXX_LANGUAGE_STANDARD", (String (owner.shouldUseGNUExtensions() ? "gnu++" : "c++") + cppStandard).quoted());