1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Projucer: Made the C++ language standard option a per-project instead of per-build configuration setting. Added an option to enable GNU compiler extensions for supported exporters. Added the option to specify a minimum C++ language standard in module declarations and added a warning to the Projucer when adding a module that has a higher standard than currently set.

This commit is contained in:
ed 2017-07-19 17:23:20 +01:00
parent 60b4b7cfe5
commit 2e81e8a0dc
17 changed files with 219 additions and 154 deletions

View file

@ -152,6 +152,9 @@ void Project::setMissingDefaultValues()
if (shouldIncludeBinaryInAppConfig() == var())
shouldIncludeBinaryInAppConfig() = true;
if (! projectRoot.hasType (Ids::cppLanguageStandard))
getCppStandardValue() = "11";
ProjucerApplication::getApp().updateNewlyOpenedProject (*this);
}
@ -687,6 +690,16 @@ void Project::createPropertyEditors (PropertyListBuilder& props)
props.add (new TextPropertyComponent (binaryDataNamespace(), "BinaryData Namespace", 256, false),
"The namespace containing the binary assests. If left empty this defaults to \"BinaryData\".");
{
static const char* cppLanguageStandardNames[] = { "C++11", "C++14", "Use Latest", nullptr };
static const var cppLanguageStandardValues[] = { "11", "14", "latest" };
props.add (new ChoicePropertyComponent (getCppStandardValue(), "C++ Language Standard",
StringArray (cppLanguageStandardNames),
Array<var> (cppLanguageStandardValues, numElementsInArray (cppLanguageStandardValues))),
"The standard of the C++ language that will be used for compilation.");
}
props.add (new TextPropertyComponent (getProjectPreprocessorDefs(), "Preprocessor definitions", 32768, true),
"Global preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace, commas, or "
"new-lines to separate the items - to include a space or comma in a definition, precede it with a backslash.");