From 78be43888e92dc008e8fc6c467012a1137c98a55 Mon Sep 17 00:00:00 2001 From: Tom Poole Date: Thu, 24 Jun 2021 13:56:15 +0100 Subject: [PATCH] Update the minimum C++ standard to C++14 --- BREAKING-CHANGES.txt | 20 ++++++++++++ README.md | 4 +-- extras/Build/CMake/JUCECheckAtomic.cmake | 4 +-- extras/Build/CMake/JUCEUtils.cmake | 4 +-- extras/Projucer/Builds/LinuxMakefile/Makefile | 4 +-- .../MacOSX/Projucer.xcodeproj/project.pbxproj | 8 ++--- extras/Projucer/Projucer.jucer | 8 ++--- .../Projucer/Source/Project/jucer_Project.cpp | 5 ++- .../Projucer/Source/Project/jucer_Project.h | 4 +-- .../ProjectSaving/jucer_ProjectExport_MSVC.h | 4 --- modules/juce_analytics/juce_analytics.h | 1 + modules/juce_audio_basics/juce_audio_basics.h | 1 + .../juce_audio_devices/juce_audio_devices.h | 1 + .../juce_audio_formats/juce_audio_formats.h | 1 + .../juce_audio_plugin_client.h | 1 + .../juce_audio_processors.h | 1 + modules/juce_audio_utils/juce_audio_utils.h | 1 + modules/juce_box2d/juce_box2d.h | 1 + modules/juce_core/juce_core.h | 1 + .../juce_core/memory/juce_AllocationHooks.cpp | 4 --- .../juce_core/system/juce_CompilerSupport.h | 31 +++++-------------- modules/juce_cryptography/juce_cryptography.h | 1 + .../juce_data_structures.h | 1 + modules/juce_events/juce_events.h | 1 + modules/juce_graphics/juce_graphics.h | 1 + modules/juce_gui_basics/juce_gui_basics.h | 1 + modules/juce_gui_extra/juce_gui_extra.cpp | 8 ++--- modules/juce_gui_extra/juce_gui_extra.h | 1 + modules/juce_opengl/juce_opengl.h | 1 + modules/juce_osc/juce_osc.h | 1 + .../juce_product_unlocking.h | 1 + modules/juce_video/juce_video.h | 1 + 32 files changed, 71 insertions(+), 56 deletions(-) diff --git a/BREAKING-CHANGES.txt b/BREAKING-CHANGES.txt index 671c33f2cd..2a75731f1c 100644 --- a/BREAKING-CHANGES.txt +++ b/BREAKING-CHANGES.txt @@ -4,6 +4,26 @@ JUCE breaking changes Develop ======= +Change +------ +The minimum supported C++ standard is now C++14 and the oldest supported +compilers on macOS and Linux are now Xcode 9.2, GCC 5.0 and Clang 3.4. + +Possible Issues +--------------- +Older compilers will no longer be able to compile JUCE. People using Xcode 8.5 +on OS X 10.11 will need to update the operating system to OS X 10.12 to be able +to use Xcode 9.2. + +Workaround +---------- +No workaround is available. + +Rationale +--------- +This compiler upgrade will allow the use of C++14 within the framework. + + Change ------ Platform GL headers are no longer included in juce_opengl.h diff --git a/README.md b/README.md index c517908c83..482da9d458 100644 --- a/README.md +++ b/README.md @@ -58,9 +58,9 @@ of the target you wish to build. #### Building JUCE Projects -- __macOS/iOS__: macOS 10.11 and Xcode 7.3.1 +- __macOS/iOS__: Xcode 9.2 (macOS 10.12.6) - __Windows__: Windows 8.1 and Visual Studio 2015 Update 3 64-bit -- __Linux__: GCC 4.8 (for a full list of dependencies, see +- __Linux__: g++ 5.0 or Clang 3.4 (for a full list of dependencies, see [here](/docs/Linux%20Dependencies.md)). - __Android__: Android Studio on Windows, macOS or Linux diff --git a/extras/Build/CMake/JUCECheckAtomic.cmake b/extras/Build/CMake/JUCECheckAtomic.cmake index 34795a6776..4ad7672042 100644 --- a/extras/Build/CMake/JUCECheckAtomic.cmake +++ b/extras/Build/CMake/JUCECheckAtomic.cmake @@ -51,7 +51,7 @@ function(_juce_create_atomic_target target_name) try_compile(compile_result "${test_bindir}" "${test_file_name}" OUTPUT_VARIABLE test_build_output_0 - CXX_STANDARD 11 + CXX_STANDARD 14 CXX_STANDARD_REQUIRED TRUE CXX_EXTENSIONS FALSE) @@ -59,7 +59,7 @@ function(_juce_create_atomic_target target_name) try_compile(compile_result "${test_bindir}" "${test_file_name}" OUTPUT_VARIABLE test_build_output_1 LINK_LIBRARIES atomic - CXX_STANDARD 11 + CXX_STANDARD 14 CXX_STANDARD_REQUIRED TRUE CXX_EXTENSIONS FALSE) diff --git a/extras/Build/CMake/JUCEUtils.cmake b/extras/Build/CMake/JUCEUtils.cmake index c5937405e7..3b6d78c14e 100644 --- a/extras/Build/CMake/JUCEUtils.cmake +++ b/extras/Build/CMake/JUCEUtils.cmake @@ -501,7 +501,7 @@ function(_juce_add_plugin_wrapper_target format path out_path) _juce_add_plugin_definitions("${target_name}" INTERFACE ${format}) _juce_add_standard_defs("${target_name}") - target_compile_features("${target_name}" INTERFACE cxx_std_11) + target_compile_features("${target_name}" INTERFACE cxx_std_14) add_library("juce::${target_name}" ALIAS "${target_name}") if(format STREQUAL "AUv3") @@ -922,7 +922,7 @@ function(juce_add_binary_data target) target_sources(${target} PRIVATE "${binary_file_names}") target_include_directories(${target} INTERFACE ${juce_binary_data_folder}) - target_compile_features(${target} PRIVATE cxx_std_11) + target_compile_features(${target} PRIVATE cxx_std_14) # This fixes an issue where Xcode is unable to find binary data during archive. if(CMAKE_GENERATOR STREQUAL "Xcode") diff --git a/extras/Projucer/Builds/LinuxMakefile/Makefile b/extras/Projucer/Builds/LinuxMakefile/Makefile index 8990f5c4f1..651c9d5cd7 100644 --- a/extras/Projucer/Builds/LinuxMakefile/Makefile +++ b/extras/Projucer/Builds/LinuxMakefile/Makefile @@ -40,7 +40,7 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := Projucer JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs freetype2) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) @@ -61,7 +61,7 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := Projucer JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs freetype2) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) diff --git a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj index 79acef76f3..24f52ff846 100644 --- a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj +++ b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj @@ -1118,7 +1118,7 @@ 0BC15DC2E5FE5ECFFB398D49 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; @@ -1171,7 +1171,7 @@ INFOPLIST_FILE = Info-App.plist; INFOPLIST_PREPROCESS = NO; INSTALL_PATH = "$(HOME)/Applications"; - MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET = 10.12; MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../Build $(SRCROOT)/../../../../modules"; OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum"; PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer; @@ -1185,7 +1185,7 @@ 0CC6C439D038EDA0D7F10DF0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; @@ -1238,7 +1238,7 @@ INFOPLIST_FILE = Info-App.plist; INFOPLIST_PREPROCESS = NO; INSTALL_PATH = "$(HOME)/Applications"; - MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET = 10.12; MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../Build $(SRCROOT)/../../../../modules"; OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum"; PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer; diff --git a/extras/Projucer/Projucer.jucer b/extras/Projucer/Projucer.jucer index 9b3f5e8a64..6c657df960 100644 --- a/extras/Projucer/Projucer.jucer +++ b/extras/Projucer/Projucer.jucer @@ -3,8 +3,8 @@ + companyCopyright="Raw Material Software Limited" useAppConfig="0" + addUsingNamespaceToJuceHeader="1" jucerFormatVersion="1"> + recommendedWarnings="LLVM" macOSDeploymentTarget="10.12"/> + linkTimeOptimisation="0" recommendedWarnings="LLVM" macOSDeploymentTarget="10.12"/> diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index af546fae0b..df0bcc9907 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -214,7 +214,7 @@ bool Project::setCppVersionFromOldExporterSettings() } } - if (highestLanguageStandard != -1 && highestLanguageStandard >= 11) + if (highestLanguageStandard >= 14) { cppStandardValue = highestLanguageStandard; return true; @@ -225,6 +225,9 @@ bool Project::setCppVersionFromOldExporterSettings() void Project::updateDeprecatedProjectSettings() { + if (cppStandardValue.get().toString() == "11") + cppStandardValue.resetToDefault(); + for (ExporterIterator exporter (*this); exporter.next();) exporter->updateDeprecatedSettings(); } diff --git a/extras/Projucer/Source/Project/jucer_Project.h b/extras/Projucer/Source/Project/jucer_Project.h index dde6a9742d..0221f89831 100644 --- a/extras/Projucer/Source/Project/jucer_Project.h +++ b/extras/Projucer/Source/Project/jucer_Project.h @@ -205,8 +205,8 @@ public: bool shouldDisplaySplashScreen() const { return displaySplashScreenValue.get(); } String getSplashScreenColourString() const { return splashScreenColourValue.get(); } - static StringArray getCppStandardStrings() { return { "C++11", "C++14", "C++17", "Use Latest" }; } - static Array getCppStandardVars() { return { "11", "14", "17", "latest" }; } + static StringArray getCppStandardStrings() { return { "C++14", "C++17", "Use Latest" }; } + static Array getCppStandardVars() { return { "14", "17", "latest" }; } String getCppStandardString() const { return cppStandardValue.get(); } diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h index a6f3f7527b..ae1c0e55d1 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h @@ -576,10 +576,6 @@ public: cl->createNewChildElement ("TreatWarningAsError")->addTextElement ("true"); auto cppStandard = owner.project.getCppStandardString(); - - if (cppStandard == "11") // VS doesn't support the C++11 flag so we have to bump it to C++14 - cppStandard = "14"; - cl->createNewChildElement ("LanguageStandard")->addTextElement ("stdcpp" + cppStandard); } diff --git a/modules/juce_analytics/juce_analytics.h b/modules/juce_analytics/juce_analytics.h index bb4f7b38eb..d9b5f32721 100644 --- a/modules/juce_analytics/juce_analytics.h +++ b/modules/juce_analytics/juce_analytics.h @@ -40,6 +40,7 @@ description: Classes to collect analytics and send to destinations website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_gui_basics diff --git a/modules/juce_audio_basics/juce_audio_basics.h b/modules/juce_audio_basics/juce_audio_basics.h index aed927e761..337e39cf7e 100644 --- a/modules/juce_audio_basics/juce_audio_basics.h +++ b/modules/juce_audio_basics/juce_audio_basics.h @@ -37,6 +37,7 @@ description: Classes for audio buffer manipulation, midi message handling, synthesis, etc. website: http://www.juce.com/juce license: ISC + minimumCppStandard: 14 dependencies: juce_core OSXFrameworks: Accelerate diff --git a/modules/juce_audio_devices/juce_audio_devices.h b/modules/juce_audio_devices/juce_audio_devices.h index e27163c1e7..33de7c0be3 100644 --- a/modules/juce_audio_devices/juce_audio_devices.h +++ b/modules/juce_audio_devices/juce_audio_devices.h @@ -37,6 +37,7 @@ description: Classes to play and record from audio and MIDI I/O devices website: http://www.juce.com/juce license: ISC + minimumCppStandard: 14 dependencies: juce_audio_basics, juce_events OSXFrameworks: CoreAudio CoreMIDI AudioToolbox diff --git a/modules/juce_audio_formats/juce_audio_formats.h b/modules/juce_audio_formats/juce_audio_formats.h index 904c1f98ad..2a807222e0 100644 --- a/modules/juce_audio_formats/juce_audio_formats.h +++ b/modules/juce_audio_formats/juce_audio_formats.h @@ -40,6 +40,7 @@ description: Classes for reading and writing various audio file formats. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_audio_basics OSXFrameworks: CoreAudio CoreMIDI QuartzCore AudioToolbox diff --git a/modules/juce_audio_plugin_client/juce_audio_plugin_client.h b/modules/juce_audio_plugin_client/juce_audio_plugin_client.h index ced253fac7..e2e2fa2159 100644 --- a/modules/juce_audio_plugin_client/juce_audio_plugin_client.h +++ b/modules/juce_audio_plugin_client/juce_audio_plugin_client.h @@ -40,6 +40,7 @@ description: Classes for building VST, VST3, AudioUnit, AAX and RTAS plugins. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_audio_processors diff --git a/modules/juce_audio_processors/juce_audio_processors.h b/modules/juce_audio_processors/juce_audio_processors.h index 3b3012b8a6..a911de8a93 100644 --- a/modules/juce_audio_processors/juce_audio_processors.h +++ b/modules/juce_audio_processors/juce_audio_processors.h @@ -40,6 +40,7 @@ description: Classes for loading and playing VST, AU, LADSPA, or internally-generated audio processors. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_gui_extra, juce_audio_basics OSXFrameworks: CoreAudio CoreMIDI AudioToolbox diff --git a/modules/juce_audio_utils/juce_audio_utils.h b/modules/juce_audio_utils/juce_audio_utils.h index 01a0b20f99..fafeb44d09 100644 --- a/modules/juce_audio_utils/juce_audio_utils.h +++ b/modules/juce_audio_utils/juce_audio_utils.h @@ -40,6 +40,7 @@ description: Classes for audio-related GUI and miscellaneous tasks. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_audio_processors, juce_audio_formats, juce_audio_devices OSXFrameworks: CoreAudioKit DiscRecording diff --git a/modules/juce_box2d/juce_box2d.h b/modules/juce_box2d/juce_box2d.h index b98ba2e891..728cbb438a 100644 --- a/modules/juce_box2d/juce_box2d.h +++ b/modules/juce_box2d/juce_box2d.h @@ -40,6 +40,7 @@ description: The Box2D physics engine and some utility classes. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_graphics diff --git a/modules/juce_core/juce_core.h b/modules/juce_core/juce_core.h index 34708e114e..effa30df2b 100644 --- a/modules/juce_core/juce_core.h +++ b/modules/juce_core/juce_core.h @@ -37,6 +37,7 @@ description: The essential set of basic JUCE classes, as required by all the other JUCE modules. Includes text, container, memory, threading and i/o functionality. website: http://www.juce.com/juce license: ISC + minimumCppStandard: 14 dependencies: OSXFrameworks: Cocoa Foundation IOKit diff --git a/modules/juce_core/memory/juce_AllocationHooks.cpp b/modules/juce_core/memory/juce_AllocationHooks.cpp index b2d5ca2467..d9466c6291 100644 --- a/modules/juce_core/memory/juce_AllocationHooks.cpp +++ b/modules/juce_core/memory/juce_AllocationHooks.cpp @@ -65,8 +65,6 @@ void operator delete[] (void* p) noexcept std::free (p); } -#if JUCE_CXX14_IS_AVAILABLE - void operator delete (void* p, size_t) noexcept { juce::notifyAllocationHooksForThread(); @@ -79,8 +77,6 @@ void operator delete[] (void* p, size_t) noexcept std::free (p); } -#endif - namespace juce { diff --git a/modules/juce_core/system/juce_CompilerSupport.h b/modules/juce_core/system/juce_CompilerSupport.h index 32b92a5972..1afda0a947 100644 --- a/modules/juce_core/system/juce_CompilerSupport.h +++ b/modules/juce_core/system/juce_CompilerSupport.h @@ -30,12 +30,8 @@ // GCC #if JUCE_GCC - #if (__GNUC__ * 100 + __GNUC_MINOR__) < 407 - #error "JUCE requires GCC 4.7 or later" - #endif - - #if ! (__cplusplus >= 201103L || defined (__GXX_EXPERIMENTAL_CXX0X__)) - #error "JUCE requires that GCC has C++11 compatibility enabled" + #if (__GNUC__ * 100 + __GNUC_MINOR__) < 500 + #error "JUCE requires GCC 5.0 or later" #endif #ifndef JUCE_EXCEPTIONS_DISABLED @@ -44,7 +40,7 @@ #endif #endif - #define JUCE_CXX14_IS_AVAILABLE ((__cplusplus >= 201402L) || ((__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && (__cplusplus >= 201300L))) + #define JUCE_CXX14_IS_AVAILABLE (__cplusplus >= 201402L) #define JUCE_CXX17_IS_AVAILABLE (__cplusplus >= 201703L) #endif @@ -53,8 +49,8 @@ // Clang #if JUCE_CLANG - #if (__clang_major__ < 3) || (__clang_major__ == 3 && __clang_minor__ < 3) - #error "JUCE requires Clang 3.3 or later" + #if (__clang_major__ < 3) || (__clang_major__ == 3 && __clang_minor__ < 4) + #error "JUCE requires Clang 3.4 or later" #endif #ifndef JUCE_COMPILER_SUPPORTS_ARC @@ -95,21 +91,8 @@ #endif //============================================================================== -// C++ library -#if (defined (__GLIBCXX__) && __GLIBCXX__ < 20130322) || (defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION < 3700)) - #error "JUCE requires a C++ library containing std::atomic" -#endif - -//============================================================================== -#if (! JUCE_MSVC) && (! JUCE_CXX14_IS_AVAILABLE) -namespace std -{ - template - unique_ptr make_unique (Args&&... args) - { - return unique_ptr (new T (std::forward (args)...)); - } -} +#if ! JUCE_CXX14_IS_AVAILABLE + #error "JUCE requires C++14 or later" #endif //============================================================================== diff --git a/modules/juce_cryptography/juce_cryptography.h b/modules/juce_cryptography/juce_cryptography.h index 4fb7389328..a388be8cb8 100644 --- a/modules/juce_cryptography/juce_cryptography.h +++ b/modules/juce_cryptography/juce_cryptography.h @@ -40,6 +40,7 @@ description: Classes for various basic cryptography functions, including RSA, Blowfish, MD5, SHA, etc. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_core diff --git a/modules/juce_data_structures/juce_data_structures.h b/modules/juce_data_structures/juce_data_structures.h index 5582e4a5c3..4cff4952e4 100644 --- a/modules/juce_data_structures/juce_data_structures.h +++ b/modules/juce_data_structures/juce_data_structures.h @@ -40,6 +40,7 @@ description: Classes for undo/redo management, and smart data structures. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_events diff --git a/modules/juce_events/juce_events.h b/modules/juce_events/juce_events.h index f7fb283c1e..246033842e 100644 --- a/modules/juce_events/juce_events.h +++ b/modules/juce_events/juce_events.h @@ -37,6 +37,7 @@ description: Classes for running an application's main event loop and sending/receiving messages, timers, etc. website: http://www.juce.com/juce license: ISC + minimumCppStandard: 14 dependencies: juce_core diff --git a/modules/juce_graphics/juce_graphics.h b/modules/juce_graphics/juce_graphics.h index 9c2bdf44da..6820b4272f 100644 --- a/modules/juce_graphics/juce_graphics.h +++ b/modules/juce_graphics/juce_graphics.h @@ -40,6 +40,7 @@ description: Classes for 2D vector graphics, image loading/saving, font handling, etc. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_events OSXFrameworks: Cocoa QuartzCore diff --git a/modules/juce_gui_basics/juce_gui_basics.h b/modules/juce_gui_basics/juce_gui_basics.h index 082ad6cc52..205ffdd4cc 100644 --- a/modules/juce_gui_basics/juce_gui_basics.h +++ b/modules/juce_gui_basics/juce_gui_basics.h @@ -40,6 +40,7 @@ description: Basic user-interface components and related classes. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_graphics juce_data_structures OSXFrameworks: Cocoa Carbon QuartzCore diff --git a/modules/juce_gui_extra/juce_gui_extra.cpp b/modules/juce_gui_extra/juce_gui_extra.cpp index 4a754e0edb..a0754cbc4d 100644 --- a/modules/juce_gui_extra/juce_gui_extra.cpp +++ b/modules/juce_gui_extra/juce_gui_extra.cpp @@ -110,17 +110,15 @@ //============================================================================== #elif (JUCE_LINUX || JUCE_BSD) && JUCE_WEB_BROWSER - JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wzero-as-null-pointer-constant", "-Wparentheses") + JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wzero-as-null-pointer-constant", "-Wparentheses", "-Wdeprecated-declarations") // If you're missing this header, you need to install the webkit2gtk-4.0 package #include - - JUCE_END_IGNORE_WARNINGS_GCC_LIKE - - // If you're missing these headers, you need to install the webkit2gtk-4.0 package #include #include #include + + JUCE_END_IGNORE_WARNINGS_GCC_LIKE #endif //============================================================================== diff --git a/modules/juce_gui_extra/juce_gui_extra.h b/modules/juce_gui_extra/juce_gui_extra.h index fbbf8f0f7e..15a78af886 100644 --- a/modules/juce_gui_extra/juce_gui_extra.h +++ b/modules/juce_gui_extra/juce_gui_extra.h @@ -40,6 +40,7 @@ description: Miscellaneous GUI classes for specialised tasks. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_gui_basics OSXFrameworks: WebKit diff --git a/modules/juce_opengl/juce_opengl.h b/modules/juce_opengl/juce_opengl.h index 5239c603f7..ea7e3d80e3 100644 --- a/modules/juce_opengl/juce_opengl.h +++ b/modules/juce_opengl/juce_opengl.h @@ -40,6 +40,7 @@ description: Classes for rendering OpenGL in a JUCE window. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_gui_extra OSXFrameworks: OpenGL diff --git a/modules/juce_osc/juce_osc.h b/modules/juce_osc/juce_osc.h index 2905f0a27c..64f3ca015f 100644 --- a/modules/juce_osc/juce_osc.h +++ b/modules/juce_osc/juce_osc.h @@ -40,6 +40,7 @@ description: Open Sound Control implementation. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_events diff --git a/modules/juce_product_unlocking/juce_product_unlocking.h b/modules/juce_product_unlocking/juce_product_unlocking.h index 73b25403d7..ff0df434a8 100644 --- a/modules/juce_product_unlocking/juce_product_unlocking.h +++ b/modules/juce_product_unlocking/juce_product_unlocking.h @@ -40,6 +40,7 @@ description: Classes for online product authentication website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_cryptography diff --git a/modules/juce_video/juce_video.h b/modules/juce_video/juce_video.h index 21a4c29f75..fa685d6b6a 100644 --- a/modules/juce_video/juce_video.h +++ b/modules/juce_video/juce_video.h @@ -40,6 +40,7 @@ description: Classes for playing video and capturing camera input. website: http://www.juce.com/juce license: GPL/Commercial + minimumCppStandard: 14 dependencies: juce_gui_extra OSXFrameworks: AVKit AVFoundation CoreMedia