diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Make.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Make.h index 15eff85a8c..41b9dba939 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Make.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Make.h @@ -57,8 +57,19 @@ public: bool isLinux() const override { return true; } bool canCopeWithDuplicateFiles() override { return false; } - void createExporterProperties (PropertyListBuilder&) override + Value getCppStandardValue() { return getSetting (Ids::cppLanguageStandard); } + String getCppStandardString() const { return settings[Ids::cppLanguageStandard]; } + + void createExporterProperties (PropertyListBuilder& properties) override { + static const char* cppStandardNames[] = { "C++03", "C++11", nullptr }; + static const char* cppStandardValues[] = { "-std=c++03", "-std=c++11", nullptr }; + + properties.add (new ChoicePropertyComponent (getCppStandardValue(), + "C++ standard to use", + StringArray (cppStandardNames), + Array (cppStandardValues)), + "The C++ standard to specify in the makefile"); } //============================================================================== @@ -237,7 +248,14 @@ private: << (" " + replacePreprocessorTokens (config, getExtraCompilerFlagsString())).trimEnd() << newLine; - out << " CXXFLAGS += $(CFLAGS) -std=c++11" << newLine; + String cppStandardToUse (getCppStandardString()); + + if (cppStandardToUse.isEmpty()) + cppStandardToUse = "-std=c++11"; + + out << " CXXFLAGS += $(CFLAGS) " + << cppStandardToUse + << newLine; writeLinkerFlags (out, config);