From c26f9f3720d3a0a7629bc661ef8ec52abeec0fe7 Mon Sep 17 00:00:00 2001 From: hogliux Date: Fri, 10 Mar 2017 14:51:38 +0000 Subject: [PATCH] Added Projucer option to select c++ language standard in Android exporter --- .../jucer_ProjectExport_Android.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Android.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Android.h index 9bbddadcb1..5702eaec64 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Android.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Android.h @@ -752,8 +752,19 @@ private: { props.add (new TextPropertyComponent (androidTheme.getPropertyAsValue(), "Android Theme", 256, false), "E.g. @android:style/Theme.NoTitleBar or leave blank for default"); + + static const char* cppStandardNames[] = { "C++03", "C++11", "C++14", nullptr }; + static const char* cppStandardValues[] = { "-std=c++03", "-std=c++11", "-std=c++14", nullptr }; + + props.add (new ChoicePropertyComponent (getCppStandardValue(), "C++ standard to use", + StringArray (cppStandardNames), Array (cppStandardValues)), + "The C++ standard to specify in the makefile"); } + //============================================================================== + Value getCppStandardValue() { return getSetting (Ids::cppLanguageStandard); } + String getCppStandardString() const { return settings[Ids::cppLanguageStandard]; } + //============================================================================== String createDefaultClassName() const { @@ -1037,7 +1048,12 @@ private: StringArray getAndroidCxxCompilerFlags() const { StringArray cxxFlags (getAndroidCompilerFlags()); - cxxFlags.add ("\"-std=gnu++11\""); + String cppStandardToUse (getCppStandardString()); + + if (cppStandardToUse.isEmpty()) + cppStandardToUse = "-std=c++11"; + + cxxFlags.add ("\"" + cppStandardToUse + "\""); return cxxFlags; }