diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h index f9b9c19a67..68959bf17b 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h @@ -106,6 +106,9 @@ public: props.add (new TextPropertyComponent (getMinimumSDKVersionValue(), "Minimum SDK version", 32, false), "The number of the minimum version of the Android SDK that the app requires"); + props.add (new BooleanPropertyComponent (getCPP11EnabledValue(), "Enable C++11 features", "Enable the -std=c++0x flag"), + "If enabled, this will set the -std=c++0x flag for the build."); + props.add (new BooleanPropertyComponent (getInternetNeededValue(), "Internet Access", "Specify internet access permission in the manifest"), "If enabled, this will set the android.permission.INTERNET flag in the manifest."); @@ -150,6 +153,9 @@ public: Value getOtherPermissionsValue() { return getSetting (Ids::androidOtherPermissions); } String getOtherPermissions() const { return settings [Ids::androidOtherPermissions]; } + Value getCPP11EnabledValue() { return getSetting (Ids::androidCpp11); } + bool isCPP11Enabled() const { return settings [Ids::androidCpp11]; } + String createDefaultClassName() const { String s (project.getBundleIdentifier().toString().toLowerCase()); @@ -504,8 +510,10 @@ private: } flags << createIncludePathFlags (config) - << " -O" << config.getGCCOptimisationFlag() - << " -std=c++0x"; + << " -O" << config.getGCCOptimisationFlag(); + + if (isCPP11Enabled()) + flags << " -std=c++0x"; defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config)); return flags + createGCCPreprocessorFlags (defines); diff --git a/extras/Introjucer/Source/Utility/jucer_PresetIDs.h b/extras/Introjucer/Source/Utility/jucer_PresetIDs.h index 56e03e1d68..843257f7c0 100644 --- a/extras/Introjucer/Source/Utility/jucer_PresetIDs.h +++ b/extras/Introjucer/Source/Utility/jucer_PresetIDs.h @@ -104,6 +104,7 @@ namespace Ids DECLARE_ID (androidNDKPath); DECLARE_ID (androidInternetNeeded); DECLARE_ID (androidArchitectures); + DECLARE_ID (androidCpp11); DECLARE_ID (androidMicNeeded); DECLARE_ID (androidMinimumSDK); DECLARE_ID (androidOtherPermissions); diff --git a/extras/JuceDemo/Builds/Android/jni/Android.mk b/extras/JuceDemo/Builds/Android/jni/Android.mk index 526cd1eace..85f8b8e765 100644 --- a/extras/JuceDemo/Builds/Android/jni/Android.mk +++ b/extras/JuceDemo/Builds/Android/jni/Android.mk @@ -46,10 +46,10 @@ LOCAL_SRC_FILES := \ ../../../../../modules/juce_video/juce_video.cpp\ ifeq ($(CONFIG),Debug) - LOCAL_CPPFLAGS += -fsigned-char -fexceptions -frtti -g -I "../../JuceLibraryCode" -O0 -std=c++0x -D "JUCE_ANDROID=1" -D "JUCE_ANDROID_API_VERSION=8" -D "JUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_JuceDemo" -D JUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/JuceDemo\" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_ANDROID_7F0E4A25=1" + LOCAL_CPPFLAGS += -fsigned-char -fexceptions -frtti -g -I "../../JuceLibraryCode" -O0 -D "JUCE_ANDROID=1" -D "JUCE_ANDROID_API_VERSION=8" -D "JUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_JuceDemo" -D JUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/JuceDemo\" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_ANDROID_7F0E4A25=1" LOCAL_LDLIBS := -llog -lGLESv2 else - LOCAL_CPPFLAGS += -fsigned-char -fexceptions -frtti -I "../../JuceLibraryCode" -Os -std=c++0x -D "JUCE_ANDROID=1" -D "JUCE_ANDROID_API_VERSION=8" -D "JUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_JuceDemo" -D JUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/JuceDemo\" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_ANDROID_7F0E4A25=1" + LOCAL_CPPFLAGS += -fsigned-char -fexceptions -frtti -I "../../JuceLibraryCode" -Os -D "JUCE_ANDROID=1" -D "JUCE_ANDROID_API_VERSION=8" -D "JUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_JuceDemo" -D JUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/JuceDemo\" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_ANDROID_7F0E4A25=1" LOCAL_LDLIBS := -llog -lGLESv2 endif