From b3a4d54a72e4e80aa0ee5cefd1b57ffd195ee643 Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 6 Sep 2022 18:43:59 +0100 Subject: [PATCH] Build: Update the minimum C++ standard to C++17 --- BREAKING-CHANGES.txt | 18 +++++++++++++++ README.md | 4 ++-- .../Builds/Android/app/CMakeLists.txt | 2 ++ .../Builds/Android/app/build.gradle | 2 +- .../DemoRunner/Builds/LinuxMakefile/Makefile | 4 ++-- .../DemoRunner.xcodeproj/project.pbxproj | 4 ++-- .../VisualStudio2017/DemoRunner_App.vcxproj | 5 ++-- .../DemoRunner_App.vcxproj.filters | 3 +++ .../VisualStudio2019/DemoRunner_App.vcxproj | 5 ++-- .../DemoRunner_App.vcxproj.filters | 3 +++ .../VisualStudio2022/DemoRunner_App.vcxproj | 5 ++-- .../DemoRunner_App.vcxproj.filters | 3 +++ .../iOS/DemoRunner.xcodeproj/project.pbxproj | 4 ++-- .../Builds/Android/app/CMakeLists.txt | 2 ++ .../Builds/Android/app/build.gradle | 2 +- .../Builds/LinuxMakefile/Makefile | 4 ++-- .../project.pbxproj | 4 ++-- .../AudioPerformanceTest_App.vcxproj | 5 ++-- .../AudioPerformanceTest_App.vcxproj.filters | 3 +++ .../project.pbxproj | 4 ++-- .../Builds/Android/app/CMakeLists.txt | 2 ++ .../Builds/Android/app/build.gradle | 2 +- .../Builds/LinuxMakefile/Makefile | 4 ++-- .../AudioPluginHost.xcodeproj/project.pbxproj | 4 ++-- .../AudioPluginHost_App.vcxproj | 5 ++-- .../AudioPluginHost_App.vcxproj.filters | 3 +++ .../AudioPluginHost_App.vcxproj | 5 ++-- .../AudioPluginHost_App.vcxproj.filters | 3 +++ .../AudioPluginHost_App.vcxproj | 5 ++-- .../AudioPluginHost_App.vcxproj.filters | 3 +++ .../AudioPluginHost.xcodeproj/project.pbxproj | 4 ++-- .../Builds/LinuxMakefile/Makefile | 4 ++-- .../BinaryBuilder.xcodeproj/project.pbxproj | 4 ++-- .../BinaryBuilder_ConsoleApp.vcxproj | 4 ++-- extras/Build/CMake/JUCEModuleSupport.cmake | 3 +-- extras/Build/CMake/JUCEUtils.cmake | 2 +- .../Builds/Android/app/CMakeLists.txt | 2 ++ .../Builds/Android/app/build.gradle | 2 +- .../Builds/LinuxMakefile/Makefile | 4 ++-- .../project.pbxproj | 4 ++-- .../NetworkGraphicsDemo_App.vcxproj | 5 ++-- .../NetworkGraphicsDemo_App.vcxproj.filters | 3 +++ .../project.pbxproj | 4 ++-- extras/Projucer/Builds/LinuxMakefile/Makefile | 4 ++-- .../MacOSX/Projucer.xcodeproj/project.pbxproj | 4 ++-- .../VisualStudio2017/Projucer_App.vcxproj | 5 ++-- .../Projucer_App.vcxproj.filters | 3 +++ .../VisualStudio2019/Projucer_App.vcxproj | 5 ++-- .../Projucer_App.vcxproj.filters | 3 +++ .../VisualStudio2022/Projucer_App.vcxproj | 5 ++-- .../Projucer_App.vcxproj.filters | 3 +++ .../Projucer/Source/Project/jucer_Project.cpp | 14 +++++++---- .../Projucer/Source/Project/jucer_Project.h | 4 ++-- .../ProjectSaving/jucer_ProjectExport_Xcode.h | 23 ++++++++----------- .../Builds/LinuxMakefile/Makefile | 4 ++-- .../UnitTestRunner.xcodeproj/project.pbxproj | 4 ++-- .../UnitTestRunner_ConsoleApp.vcxproj | 5 ++-- .../UnitTestRunner_ConsoleApp.vcxproj.filters | 3 +++ .../UnitTestRunner_ConsoleApp.vcxproj | 5 ++-- .../UnitTestRunner_ConsoleApp.vcxproj.filters | 3 +++ .../UnitTestRunner_ConsoleApp.vcxproj | 5 ++-- .../UnitTestRunner_ConsoleApp.vcxproj.filters | 3 +++ .../WindowsDLL_StaticLibrary.vcxproj | 5 ++-- .../WindowsDLL_StaticLibrary.vcxproj.filters | 3 +++ modules/juce_analytics/juce_analytics.h | 2 +- modules/juce_audio_basics/juce_audio_basics.h | 2 +- .../juce_audio_devices/juce_audio_devices.h | 2 +- .../juce_audio_formats/juce_audio_formats.h | 2 +- .../juce_audio_plugin_client/CMakeLists.txt | 2 +- .../juce_audio_plugin_client.h | 2 +- .../format_types/juce_VST3Headers.h | 1 + .../juce_audio_processors.h | 2 +- modules/juce_audio_utils/juce_audio_utils.h | 2 +- modules/juce_box2d/juce_box2d.h | 2 +- modules/juce_core/juce_core.h | 2 +- .../native/juce_BasicNativeHeaders.h | 11 --------- .../juce_core/system/juce_CompilerSupport.h | 17 +++++--------- .../juce_core/system/juce_StandardHeader.h | 1 + modules/juce_cryptography/juce_cryptography.h | 2 +- .../juce_data_structures.h | 2 +- modules/juce_dsp/juce_dsp.h | 2 +- modules/juce_dsp/widgets/juce_WaveShaper.h | 2 +- modules/juce_events/juce_events.h | 2 +- modules/juce_graphics/juce_graphics.h | 2 +- modules/juce_gui_basics/juce_gui_basics.h | 2 +- modules/juce_gui_extra/juce_gui_extra.h | 2 +- modules/juce_opengl/juce_opengl.h | 2 +- modules/juce_osc/juce_osc.h | 2 +- .../juce_product_unlocking.h | 2 +- modules/juce_video/juce_video.h | 2 +- 90 files changed, 213 insertions(+), 141 deletions(-) diff --git a/BREAKING-CHANGES.txt b/BREAKING-CHANGES.txt index fcb5395e7a..ccb9100d14 100644 --- a/BREAKING-CHANGES.txt +++ b/BREAKING-CHANGES.txt @@ -4,6 +4,24 @@ JUCE breaking changes develop ======= +Change +------ +The minimum supported C++ standard is now C++17 and the oldest supported +compilers on Linux are now GCC 7.0 and Clang 6.0. + +Possible Issues +--------------- +Older compilers will no longer be able to compile JUCE. + +Workaround +---------- +No workaround is available. + +Rationale +--------- +This compiler upgrade will allow the use of C++17 within the framework. + + Change ------ Resource forks are no longer generated for Audio Unit plug-ins. diff --git a/README.md b/README.md index 09d2af21dc..2a9837287b 100644 --- a/README.md +++ b/README.md @@ -57,8 +57,8 @@ of the target you wish to build. #### Building JUCE Projects - __macOS/iOS__: Xcode 10.1 (macOS 10.13.6) -- __Windows__: Windows 8.1 and Visual Studio 2015 Update 3 64-bit -- __Linux__: g++ 5.0 or Clang 3.4 (for a full list of dependencies, see +- __Windows__: Windows 8.1 and Visual Studio 2017 +- __Linux__: g++ 7.0 or Clang 6.0 (for a full list of dependencies, see [here](/docs/Linux%20Dependencies.md)). - __Android__: Android Studio on Windows, macOS or Linux diff --git a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt index a85f2c0461..d411a16853 100644 --- a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt +++ b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt @@ -1763,6 +1763,7 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_PerScreenDisplayLinks.h" "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" "../../../../../modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h" @@ -3735,6 +3736,7 @@ set_source_files_properties( "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_PerScreenDisplayLinks.h" "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" "../../../../../modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h" diff --git a/examples/DemoRunner/Builds/Android/app/build.gradle b/examples/DemoRunner/Builds/Android/app/build.gradle index 925777b4c1..1733d0356c 100644 --- a/examples/DemoRunner/Builds/Android/app/build.gradle +++ b/examples/DemoRunner/Builds/Android/app/build.gradle @@ -23,7 +23,7 @@ android { targetSdkVersion 33 externalNativeBuild { cmake { - arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-23", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DCMAKE_CXX_STANDARD=14", "-DCMAKE_CXX_EXTENSIONS=OFF" + arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-23", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF" } } } diff --git a/examples/DemoRunner/Builds/LinuxMakefile/Makefile b/examples/DemoRunner/Builds/LinuxMakefile/Makefile index 316d4b10c1..4f544eb7b0 100644 --- a/examples/DemoRunner/Builds/LinuxMakefile/Makefile +++ b/examples/DemoRunner/Builds/LinuxMakefile/Makefile @@ -44,7 +44,7 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := DemoRunner JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread -lGL $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) @@ -65,7 +65,7 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := DemoRunner JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread -lGL $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) diff --git a/examples/DemoRunner/Builds/MacOSX/DemoRunner.xcodeproj/project.pbxproj b/examples/DemoRunner/Builds/MacOSX/DemoRunner.xcodeproj/project.pbxproj index c647f0b0af..48a2b4b354 100644 --- a/examples/DemoRunner/Builds/MacOSX/DemoRunner.xcodeproj/project.pbxproj +++ b/examples/DemoRunner/Builds/MacOSX/DemoRunner.xcodeproj/project.pbxproj @@ -496,7 +496,7 @@ 69330F27DD2C71609336C7D2 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; @@ -588,7 +588,7 @@ B18D059E5616FA729F764229 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; diff --git a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj index 1d4e3d0806..a012d0636f 100644 --- a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj +++ b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj @@ -75,7 +75,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -118,7 +118,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3596,6 +3596,7 @@ + diff --git a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters index 8ab0de032b..9be61b93d1 100644 --- a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters +++ b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters @@ -6186,6 +6186,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj index 7bb91c62fb..950e21fcb3 100644 --- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj +++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj @@ -75,7 +75,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -118,7 +118,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3596,6 +3596,7 @@ + diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters index 453ecdeb0c..dc80a1f2da 100644 --- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters +++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters @@ -6186,6 +6186,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj index 7028be67db..a39a762c02 100644 --- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj +++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj @@ -75,7 +75,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -118,7 +118,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3596,6 +3596,7 @@ + diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters index 5a41735146..528029cf72 100644 --- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters +++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters @@ -6186,6 +6186,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/examples/DemoRunner/Builds/iOS/DemoRunner.xcodeproj/project.pbxproj b/examples/DemoRunner/Builds/iOS/DemoRunner.xcodeproj/project.pbxproj index 8fe5042987..9cac31f6df 100644 --- a/examples/DemoRunner/Builds/iOS/DemoRunner.xcodeproj/project.pbxproj +++ b/examples/DemoRunner/Builds/iOS/DemoRunner.xcodeproj/project.pbxproj @@ -504,7 +504,7 @@ buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_ENTITLEMENTS = "App.entitlements"; @@ -596,7 +596,7 @@ buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_ENTITLEMENTS = "App.entitlements"; diff --git a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt index 9bfc8451e8..bdb1899af3 100644 --- a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt +++ b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt @@ -1540,6 +1540,7 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_PerScreenDisplayLinks.h" "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" "../../../../../modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h" @@ -3210,6 +3211,7 @@ set_source_files_properties( "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_PerScreenDisplayLinks.h" "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" "../../../../../modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h" diff --git a/extras/AudioPerformanceTest/Builds/Android/app/build.gradle b/extras/AudioPerformanceTest/Builds/Android/app/build.gradle index 1a18c34b70..0b29644cc0 100644 --- a/extras/AudioPerformanceTest/Builds/Android/app/build.gradle +++ b/extras/AudioPerformanceTest/Builds/Android/app/build.gradle @@ -23,7 +23,7 @@ android { targetSdkVersion 33 externalNativeBuild { cmake { - arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-23", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DCMAKE_CXX_STANDARD=14", "-DCMAKE_CXX_EXTENSIONS=OFF" + arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-23", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF" } } } diff --git a/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile b/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile index 85998ab593..c4e97bf1e9 100644 --- a/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile +++ b/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile @@ -44,7 +44,7 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := AudioPerformanceTest JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) @@ -65,7 +65,7 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := AudioPerformanceTest JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) diff --git a/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj b/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj index 4b040710b1..348473a816 100644 --- a/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj +++ b/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj @@ -314,7 +314,7 @@ 19B7C16D592FB25D09022191 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; @@ -377,7 +377,7 @@ B7A6988E30C0A68B01EDC53B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj index 03a877a6c7..29ace6a224 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj @@ -74,7 +74,7 @@ Level4 true true - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -116,7 +116,7 @@ Level4 true true - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3095,6 +3095,7 @@ + diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters index d8d4fa21f7..397e5603b4 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters @@ -5301,6 +5301,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/AudioPerformanceTest/Builds/iOS/AudioPerformanceTest.xcodeproj/project.pbxproj b/extras/AudioPerformanceTest/Builds/iOS/AudioPerformanceTest.xcodeproj/project.pbxproj index dd6e81db22..28ee99b8ed 100644 --- a/extras/AudioPerformanceTest/Builds/iOS/AudioPerformanceTest.xcodeproj/project.pbxproj +++ b/extras/AudioPerformanceTest/Builds/iOS/AudioPerformanceTest.xcodeproj/project.pbxproj @@ -332,7 +332,7 @@ buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; COMBINE_HIDPI_IMAGES = YES; @@ -394,7 +394,7 @@ buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; COMBINE_HIDPI_IMAGES = YES; diff --git a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt index 7ddbdf1967..bdece05be9 100644 --- a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt +++ b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt @@ -1672,6 +1672,7 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_PerScreenDisplayLinks.h" "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" "../../../../../modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h" @@ -3497,6 +3498,7 @@ set_source_files_properties( "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_PerScreenDisplayLinks.h" "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" "../../../../../modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h" diff --git a/extras/AudioPluginHost/Builds/Android/app/build.gradle b/extras/AudioPluginHost/Builds/Android/app/build.gradle index 9d5176c6db..f374015141 100644 --- a/extras/AudioPluginHost/Builds/Android/app/build.gradle +++ b/extras/AudioPluginHost/Builds/Android/app/build.gradle @@ -23,7 +23,7 @@ android { targetSdkVersion 33 externalNativeBuild { cmake { - arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-23", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DCMAKE_CXX_STANDARD=14", "-DCMAKE_CXX_EXTENSIONS=OFF" + arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-23", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF" } } } diff --git a/extras/AudioPluginHost/Builds/LinuxMakefile/Makefile b/extras/AudioPluginHost/Builds/LinuxMakefile/Makefile index fb0581a48b..5d1a9bc346 100644 --- a/extras/AudioPluginHost/Builds/LinuxMakefile/Makefile +++ b/extras/AudioPluginHost/Builds/LinuxMakefile/Makefile @@ -44,7 +44,7 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := AudioPluginHost JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread -lGL $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) @@ -65,7 +65,7 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := AudioPluginHost JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -Os $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread -lGL $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) diff --git a/extras/AudioPluginHost/Builds/MacOSX/AudioPluginHost.xcodeproj/project.pbxproj b/extras/AudioPluginHost/Builds/MacOSX/AudioPluginHost.xcodeproj/project.pbxproj index 7108cf0d0d..5eca70afbc 100644 --- a/extras/AudioPluginHost/Builds/MacOSX/AudioPluginHost.xcodeproj/project.pbxproj +++ b/extras/AudioPluginHost/Builds/MacOSX/AudioPluginHost.xcodeproj/project.pbxproj @@ -428,7 +428,7 @@ 49453CC5AD9F08D2738464AC /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; @@ -568,7 +568,7 @@ C8B793AC1BEFBE7A99BE8352 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; diff --git a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj index ff0d416bfb..729482deea 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj +++ b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj @@ -75,7 +75,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -118,7 +118,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3332,6 +3332,7 @@ + diff --git a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters index 71f69c7322..a558ba4b82 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters +++ b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters @@ -5742,6 +5742,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj index 563ae87da3..a577090bd8 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj +++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj @@ -75,7 +75,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -118,7 +118,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3332,6 +3332,7 @@ + diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters index 5c056fd722..de41979911 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters +++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters @@ -5742,6 +5742,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj index 7022f9a11a..edd37a271b 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj +++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj @@ -75,7 +75,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -118,7 +118,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3332,6 +3332,7 @@ + diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters index 46ac064070..ef8d60d67b 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters +++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters @@ -5742,6 +5742,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/AudioPluginHost/Builds/iOS/AudioPluginHost.xcodeproj/project.pbxproj b/extras/AudioPluginHost/Builds/iOS/AudioPluginHost.xcodeproj/project.pbxproj index a724850956..5ce847729b 100644 --- a/extras/AudioPluginHost/Builds/iOS/AudioPluginHost.xcodeproj/project.pbxproj +++ b/extras/AudioPluginHost/Builds/iOS/AudioPluginHost.xcodeproj/project.pbxproj @@ -442,7 +442,7 @@ buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; COMBINE_HIDPI_IMAGES = YES; @@ -583,7 +583,7 @@ buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; COMBINE_HIDPI_IMAGES = YES; diff --git a/extras/BinaryBuilder/Builds/LinuxMakefile/Makefile b/extras/BinaryBuilder/Builds/LinuxMakefile/Makefile index 58dd5d452d..24b1c00edf 100644 --- a/extras/BinaryBuilder/Builds/LinuxMakefile/Makefile +++ b/extras/BinaryBuilder/Builds/LinuxMakefile/Makefile @@ -44,7 +44,7 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_CONSOLEAPP := BinaryBuilder JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs libcurl) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) @@ -65,7 +65,7 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_CONSOLEAPP := BinaryBuilder JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -Os $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs libcurl) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) diff --git a/extras/BinaryBuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj b/extras/BinaryBuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj index 835c8731c7..e26ef905fd 100644 --- a/extras/BinaryBuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj +++ b/extras/BinaryBuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj @@ -186,7 +186,7 @@ 00F18709927DE6070FBA7BD0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; @@ -284,7 +284,7 @@ 8A190EF24B99F557190320DA /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; diff --git a/extras/BinaryBuilder/Builds/VisualStudio2022/BinaryBuilder_ConsoleApp.vcxproj b/extras/BinaryBuilder/Builds/VisualStudio2022/BinaryBuilder_ConsoleApp.vcxproj index 71be7f930c..da5fa6073b 100644 --- a/extras/BinaryBuilder/Builds/VisualStudio2022/BinaryBuilder_ConsoleApp.vcxproj +++ b/extras/BinaryBuilder/Builds/VisualStudio2022/BinaryBuilder_ConsoleApp.vcxproj @@ -74,7 +74,7 @@ Level4 true true - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -116,7 +116,7 @@ Level4 true true - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) diff --git a/extras/Build/CMake/JUCEModuleSupport.cmake b/extras/Build/CMake/JUCEModuleSupport.cmake index 1109a29033..02db69868d 100644 --- a/extras/Build/CMake/JUCEModuleSupport.cmake +++ b/extras/Build/CMake/JUCEModuleSupport.cmake @@ -317,7 +317,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_14) + target_compile_features("${target_name}" INTERFACE cxx_std_17) add_library("juce::${target_name}" ALIAS "${target_name}") if(format STREQUAL "AUv3") @@ -327,7 +327,6 @@ function(_juce_add_plugin_wrapper_target format path out_path) _juce_link_frameworks("${target_name}" INTERFACE AudioUnit) endif() elseif(format STREQUAL "AU") - target_compile_features("${target_name}" INTERFACE cxx_std_17) target_include_directories("${target_name}" INTERFACE "${out_path}/juce_audio_plugin_client/AU") _juce_link_frameworks("${target_name}" INTERFACE AudioUnit CoreAudioKit) endif() diff --git a/extras/Build/CMake/JUCEUtils.cmake b/extras/Build/CMake/JUCEUtils.cmake index 378b7e78b8..1fa610447b 100644 --- a/extras/Build/CMake/JUCEUtils.cmake +++ b/extras/Build/CMake/JUCEUtils.cmake @@ -356,7 +356,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_14) + target_compile_features(${target} PRIVATE cxx_std_17) # This fixes an issue where Xcode is unable to find binary data during archive. if(CMAKE_GENERATOR STREQUAL "Xcode") diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt index db927282f5..960a716669 100644 --- a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt +++ b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt @@ -1559,6 +1559,7 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_PerScreenDisplayLinks.h" "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" "../../../../../modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h" @@ -3309,6 +3310,7 @@ set_source_files_properties( "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_PerScreenDisplayLinks.h" "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" "../../../../../modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h" diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/build.gradle b/extras/NetworkGraphicsDemo/Builds/Android/app/build.gradle index d7e1cada88..fe106779fc 100644 --- a/extras/NetworkGraphicsDemo/Builds/Android/app/build.gradle +++ b/extras/NetworkGraphicsDemo/Builds/Android/app/build.gradle @@ -23,7 +23,7 @@ android { targetSdkVersion 33 externalNativeBuild { cmake { - arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-16", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DCMAKE_CXX_STANDARD=14", "-DCMAKE_CXX_EXTENSIONS=OFF" + arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-16", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF" } } } diff --git a/extras/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile b/extras/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile index 440409737a..b25c138b9a 100644 --- a/extras/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile +++ b/extras/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile @@ -44,7 +44,7 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := JUCE\ Network\ Graphics\ Demo JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread -lGL $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) @@ -65,7 +65,7 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := JUCE\ Network\ Graphics\ Demo JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread -lGL $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) diff --git a/extras/NetworkGraphicsDemo/Builds/MacOSX/NetworkGraphicsDemo.xcodeproj/project.pbxproj b/extras/NetworkGraphicsDemo/Builds/MacOSX/NetworkGraphicsDemo.xcodeproj/project.pbxproj index 5d700e9f3a..f1bc3cb50c 100644 --- a/extras/NetworkGraphicsDemo/Builds/MacOSX/NetworkGraphicsDemo.xcodeproj/project.pbxproj +++ b/extras/NetworkGraphicsDemo/Builds/MacOSX/NetworkGraphicsDemo.xcodeproj/project.pbxproj @@ -354,7 +354,7 @@ 2E06386CE7CCA5FF76819BFF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; @@ -519,7 +519,7 @@ EE7498599191DDC73ECB55B0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj index 4296299fdf..a29acf43b0 100644 --- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj +++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj @@ -74,7 +74,7 @@ Level4 true true - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -116,7 +116,7 @@ Level4 true true - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3193,6 +3193,7 @@ + diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters index 44a2998b5e..31bfc45a3f 100644 --- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters +++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters @@ -5463,6 +5463,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/NetworkGraphicsDemo/Builds/iOS/NetworkGraphicsDemo.xcodeproj/project.pbxproj b/extras/NetworkGraphicsDemo/Builds/iOS/NetworkGraphicsDemo.xcodeproj/project.pbxproj index 4940ed4aba..f343af72e9 100644 --- a/extras/NetworkGraphicsDemo/Builds/iOS/NetworkGraphicsDemo.xcodeproj/project.pbxproj +++ b/extras/NetworkGraphicsDemo/Builds/iOS/NetworkGraphicsDemo.xcodeproj/project.pbxproj @@ -372,7 +372,7 @@ buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; COMBINE_HIDPI_IMAGES = YES; @@ -540,7 +540,7 @@ buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; COMBINE_HIDPI_IMAGES = YES; diff --git a/extras/Projucer/Builds/LinuxMakefile/Makefile b/extras/Projucer/Builds/LinuxMakefile/Makefile index a0f93a7fa3..4b744cc249 100644 --- a/extras/Projucer/Builds/LinuxMakefile/Makefile +++ b/extras/Projucer/Builds/LinuxMakefile/Makefile @@ -44,7 +44,7 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := Projucer JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(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) @@ -65,7 +65,7 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := Projucer JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(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 ff3b8511d6..00d886b26c 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++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; @@ -1188,7 +1188,7 @@ 0CC6C439D038EDA0D7F10DF0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj index 83c0c597ba..4271b164fd 100644 --- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj @@ -75,7 +75,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -118,7 +118,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -2085,6 +2085,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters index 748c79a530..ab55d2bb77 100644 --- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters @@ -3576,6 +3576,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj index ba0a4ff246..b3a4b544bb 100644 --- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj @@ -75,7 +75,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -118,7 +118,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -2085,6 +2085,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters index c3b4cd56b4..d354b85c69 100644 --- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters @@ -3576,6 +3576,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj index 6a8f866dab..b340869bc0 100644 --- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj @@ -75,7 +75,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -118,7 +118,7 @@ true true /w44265 /w45038 /w44062 %(AdditionalOptions) - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -2085,6 +2085,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters index dcac9aaeec..69f66a4f83 100644 --- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters @@ -3576,6 +3576,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index d0b8c2ac49..afce453d89 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -236,7 +236,7 @@ bool Project::setCppVersionFromOldExporterSettings() } } - if (highestLanguageStandard >= 14) + if (highestLanguageStandard >= 17) { cppStandardValue = highestLanguageStandard; return true; @@ -247,8 +247,14 @@ bool Project::setCppVersionFromOldExporterSettings() void Project::updateDeprecatedProjectSettings() { - if (cppStandardValue.get().toString() == "11") - cppStandardValue.resetToDefault(); + for (const auto& version : { "11", "14" }) + { + if (cppStandardValue.get().toString() == version) + { + cppStandardValue.resetToDefault(); + break; + } + } for (ExporterIterator exporter (*this); exporter.next();) exporter->updateDeprecatedSettings(); @@ -299,7 +305,7 @@ void Project::initialiseProjectValues() useAppConfigValue.referTo (projectRoot, Ids::useAppConfig, getUndoManager(), true); addUsingNamespaceToJuceHeader.referTo (projectRoot, Ids::addUsingNamespaceToJuceHeader, getUndoManager(), true); - cppStandardValue.referTo (projectRoot, Ids::cppLanguageStandard, getUndoManager(), "14"); + cppStandardValue.referTo (projectRoot, Ids::cppLanguageStandard, getUndoManager(), "17"); headerSearchPathsValue.referTo (projectRoot, Ids::headerPath, getUndoManager()); preprocessorDefsValue.referTo (projectRoot, Ids::defines, getUndoManager()); diff --git a/extras/Projucer/Source/Project/jucer_Project.h b/extras/Projucer/Source/Project/jucer_Project.h index 0340168137..ae976c1e81 100644 --- a/extras/Projucer/Source/Project/jucer_Project.h +++ b/extras/Projucer/Source/Project/jucer_Project.h @@ -220,8 +220,8 @@ public: bool shouldDisplaySplashScreen() const { return displaySplashScreenValue.get(); } String getSplashScreenColourString() const { return splashScreenColourValue.get(); } - static StringArray getCppStandardStrings() { return { "C++14", "C++17", "C++20", "Use Latest" }; } - static Array getCppStandardVars() { return { "14", "17", "20", "latest" }; } + static StringArray getCppStandardStrings() { return { "C++17", "C++20", "Use Latest" }; } + static Array getCppStandardVars() { return { "17", "20", "latest" }; } static String getLatestNumberedCppStandardString() { diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h index b8a25bb14f..95a417bcfe 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h @@ -1704,10 +1704,6 @@ public: if (owner.project.getCppStandardString() == "latest") return owner.project.getLatestNumberedCppStandardString(); - // The AudioUnitSDK requires C++17 - if (type == AudioUnitPlugIn) - return "17"; - return owner.project.getCppStandardString(); }(); @@ -1975,17 +1971,16 @@ public: StringArray paths (owner.extraSearchPaths); paths.addArray (config.getHeaderSearchPaths()); - if (owner.project.getEnabledModules().isModuleEnabled ("juce_audio_plugin_client")) + constexpr auto audioPluginClient = "juce_audio_plugin_client"; + + if (owner.project.getEnabledModules().isModuleEnabled (audioPluginClient)) { - const auto pluginClientModule = owner.getModuleFolderRelativeToProject ("juce_audio_plugin_client"); - for (const auto& path : { pluginClientModule, // For AU resource fork - pluginClientModule.getChildFile ("AU") }) // For AudioUnitSDK includes - { - paths.add (path.rebased (owner.projectFolder, - owner.getTargetFolder(), - build_tools::RelativePath::buildTargetFolder) - .toUnixStyle()); - } + paths.add (owner.getModuleFolderRelativeToProject (audioPluginClient) + .getChildFile ("AU") + .rebased (owner.projectFolder, + owner.getTargetFolder(), + build_tools::RelativePath::buildTargetFolder) + .toUnixStyle()); } sanitiseAndEscapeSearchPaths (config, paths); diff --git a/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile b/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile index 2c7ebd710b..72612858b7 100644 --- a/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile +++ b/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile @@ -44,7 +44,7 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_CONSOLEAPP := UnitTestRunner JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread -lGL $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) @@ -65,7 +65,7 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_CONSOLEAPP := UnitTestRunner JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 libcurl) -fvisibility=hidden -lrt -ldl -lpthread -lGL $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) diff --git a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj index 3d05bd8ea1..4771828cda 100644 --- a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj +++ b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj @@ -393,7 +393,7 @@ 962CC7E0A536C3F56DBE1F8F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; @@ -526,7 +526,7 @@ A81C9C5D3696F83D5E8CFE11 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_LINK_OBJC_RUNTIME = NO; CODE_SIGN_IDENTITY = ""; diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj index 8c216b9fb3..05c18bd267 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj @@ -76,7 +76,7 @@ true /w44265 /w45038 /w44062 %(AdditionalOptions) true - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -120,7 +120,7 @@ true /w44265 /w45038 /w44062 %(AdditionalOptions) true - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3398,6 +3398,7 @@ + diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters index aaaf298f3e..ca50ed3345 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters @@ -5832,6 +5832,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj index 9928fd8d93..74fd4e38cd 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj @@ -76,7 +76,7 @@ true /w44265 /w45038 /w44062 %(AdditionalOptions) true - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -120,7 +120,7 @@ true /w44265 /w45038 /w44062 %(AdditionalOptions) true - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3398,6 +3398,7 @@ + diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters index a60b3465dc..f74b2e491f 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters @@ -5832,6 +5832,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj index 20584fb47a..faffed5565 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj @@ -76,7 +76,7 @@ true /w44265 /w45038 /w44062 %(AdditionalOptions) true - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -120,7 +120,7 @@ true /w44265 /w45038 /w44062 %(AdditionalOptions) true - stdcpp14 + stdcpp17 ..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3398,6 +3398,7 @@ + diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters index dfe10afe9c..e37c73463d 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters @@ -5832,6 +5832,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj index 42b8349d09..2510b46c83 100644 --- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj +++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj @@ -74,7 +74,7 @@ Level4 true true - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -116,7 +116,7 @@ Level4 true true - stdcpp14 + stdcpp17 ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) @@ -3169,6 +3169,7 @@ + diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters index 473d86c619..853a07382a 100644 --- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters +++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters @@ -5430,6 +5430,9 @@ JUCE Modules\juce_gui_basics\native + + JUCE Modules\juce_gui_basics\native + JUCE Modules\juce_gui_basics\native diff --git a/modules/juce_analytics/juce_analytics.h b/modules/juce_analytics/juce_analytics.h index 42eae71cbb..4598f54f6e 100644 --- a/modules/juce_analytics/juce_analytics.h +++ b/modules/juce_analytics/juce_analytics.h @@ -40,7 +40,7 @@ description: Classes to collect analytics and send to destinations website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 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 46d5883abc..4158e7b0f0 100644 --- a/modules/juce_audio_basics/juce_audio_basics.h +++ b/modules/juce_audio_basics/juce_audio_basics.h @@ -37,7 +37,7 @@ description: Classes for audio buffer manipulation, midi message handling, synthesis, etc. website: http://www.juce.com/juce license: ISC - minimumCppStandard: 14 + minimumCppStandard: 17 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 6695c0aca1..06bc1e528c 100644 --- a/modules/juce_audio_devices/juce_audio_devices.h +++ b/modules/juce_audio_devices/juce_audio_devices.h @@ -37,7 +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 + minimumCppStandard: 17 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 8eb69c2c96..97549fbdd3 100644 --- a/modules/juce_audio_formats/juce_audio_formats.h +++ b/modules/juce_audio_formats/juce_audio_formats.h @@ -40,7 +40,7 @@ description: Classes for reading and writing various audio file formats. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_audio_basics OSXFrameworks: CoreAudio CoreMIDI QuartzCore AudioToolbox diff --git a/modules/juce_audio_plugin_client/CMakeLists.txt b/modules/juce_audio_plugin_client/CMakeLists.txt index 5d294a3b10..8b29919a8f 100644 --- a/modules/juce_audio_plugin_client/CMakeLists.txt +++ b/modules/juce_audio_plugin_client/CMakeLists.txt @@ -23,6 +23,6 @@ add_executable(juce_lv2_helper LV2/juce_LV2TurtleDumpProgram.cpp) add_executable(juce::juce_lv2_helper ALIAS juce_lv2_helper) -target_compile_features(juce_lv2_helper PRIVATE cxx_std_14) +target_compile_features(juce_lv2_helper PRIVATE cxx_std_17) set_target_properties(juce_lv2_helper PROPERTIES BUILD_WITH_INSTALL_RPATH ON) target_link_libraries(juce_lv2_helper PRIVATE ${CMAKE_DL_LIBS}) 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 39fd87e8e2..ff352296bd 100644 --- a/modules/juce_audio_plugin_client/juce_audio_plugin_client.h +++ b/modules/juce_audio_plugin_client/juce_audio_plugin_client.h @@ -40,7 +40,7 @@ description: Classes for building VST, VST3, AU, AUv3 and AAX plugins. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_audio_processors diff --git a/modules/juce_audio_processors/format_types/juce_VST3Headers.h b/modules/juce_audio_processors/format_types/juce_VST3Headers.h index 297776b3cc..0acdc86020 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3Headers.h +++ b/modules/juce_audio_processors/format_types/juce_VST3Headers.h @@ -34,6 +34,7 @@ JUCE_BEGIN_IGNORE_WARNINGS_LEVEL_MSVC (0, 4505 4702 6011 6031 6221 6386 6387 633 JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-copy-dtor", "-Wnon-virtual-dtor", + "-Wdeprecated", "-Wreorder", "-Wunsequenced", "-Wint-to-pointer-cast", diff --git a/modules/juce_audio_processors/juce_audio_processors.h b/modules/juce_audio_processors/juce_audio_processors.h index bf9b568d0b..6366fe8b36 100644 --- a/modules/juce_audio_processors/juce_audio_processors.h +++ b/modules/juce_audio_processors/juce_audio_processors.h @@ -40,7 +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 + minimumCppStandard: 17 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 6d0c1a72dc..857906d54b 100644 --- a/modules/juce_audio_utils/juce_audio_utils.h +++ b/modules/juce_audio_utils/juce_audio_utils.h @@ -40,7 +40,7 @@ description: Classes for audio-related GUI and miscellaneous tasks. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 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 cf95271936..a568e32081 100644 --- a/modules/juce_box2d/juce_box2d.h +++ b/modules/juce_box2d/juce_box2d.h @@ -40,7 +40,7 @@ description: The Box2D physics engine and some utility classes. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_graphics diff --git a/modules/juce_core/juce_core.h b/modules/juce_core/juce_core.h index 1aafb16f06..c33bb3026f 100644 --- a/modules/juce_core/juce_core.h +++ b/modules/juce_core/juce_core.h @@ -37,7 +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 + minimumCppStandard: 17 dependencies: OSXFrameworks: Cocoa Foundation IOKit diff --git a/modules/juce_core/native/juce_BasicNativeHeaders.h b/modules/juce_core/native/juce_BasicNativeHeaders.h index e0d78f4d8a..3d8c715cba 100644 --- a/modules/juce_core/native/juce_BasicNativeHeaders.h +++ b/modules/juce_core/native/juce_BasicNativeHeaders.h @@ -113,18 +113,7 @@ #include #include #include - - #if ! JUCE_CXX17_IS_AVAILABLE - #pragma push_macro ("WIN_NOEXCEPT") - #define WIN_NOEXCEPT - #endif - #include - - #if ! JUCE_CXX17_IS_AVAILABLE - #pragma pop_macro ("WIN_NOEXCEPT") - #endif - #include #include #include diff --git a/modules/juce_core/system/juce_CompilerSupport.h b/modules/juce_core/system/juce_CompilerSupport.h index bbe21625bc..c1e173c50e 100644 --- a/modules/juce_core/system/juce_CompilerSupport.h +++ b/modules/juce_core/system/juce_CompilerSupport.h @@ -30,8 +30,8 @@ // GCC #if JUCE_GCC - #if (__GNUC__ * 100 + __GNUC_MINOR__) < 500 - #error "JUCE requires GCC 5.0 or later" + #if (__GNUC__ * 100 + __GNUC_MINOR__) < 700 + #error "JUCE requires GCC 7.0 or later" #endif #ifndef JUCE_EXCEPTIONS_DISABLED @@ -49,8 +49,8 @@ // Clang #if JUCE_CLANG - #if (__clang_major__ < 3) || (__clang_major__ == 3 && __clang_minor__ < 4) - #error "JUCE requires Clang 3.4 or later" + #if (__clang_major__ < 6) + #error "JUCE requires Clang 6 or later" #endif #ifndef JUCE_COMPILER_SUPPORTS_ARC @@ -87,8 +87,8 @@ #endif //============================================================================== -#if ! JUCE_CXX14_IS_AVAILABLE - #error "JUCE requires C++14 or later" +#if ! JUCE_CXX17_IS_AVAILABLE + #error "JUCE requires C++17 or later" #endif //============================================================================== @@ -100,10 +100,5 @@ #define JUCE_COMPILER_SUPPORTS_NOEXCEPT 1 #define JUCE_DELETED_FUNCTION = delete #define JUCE_CONSTEXPR constexpr -#endif - -#if JUCE_CXX17_IS_AVAILABLE #define JUCE_NODISCARD [[nodiscard]] -#else - #define JUCE_NODISCARD #endif diff --git a/modules/juce_core/system/juce_StandardHeader.h b/modules/juce_core/system/juce_StandardHeader.h index 71611f1044..2fdba455ba 100644 --- a/modules/juce_core/system/juce_StandardHeader.h +++ b/modules/juce_core/system/juce_StandardHeader.h @@ -72,6 +72,7 @@ #include #include #include +#include //============================================================================== #include "juce_CompilerSupport.h" diff --git a/modules/juce_cryptography/juce_cryptography.h b/modules/juce_cryptography/juce_cryptography.h index 77fa22af5e..92a95d1f7d 100644 --- a/modules/juce_cryptography/juce_cryptography.h +++ b/modules/juce_cryptography/juce_cryptography.h @@ -40,7 +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 + minimumCppStandard: 17 dependencies: juce_core diff --git a/modules/juce_data_structures/juce_data_structures.h b/modules/juce_data_structures/juce_data_structures.h index 3ed772b81f..1db7de0385 100644 --- a/modules/juce_data_structures/juce_data_structures.h +++ b/modules/juce_data_structures/juce_data_structures.h @@ -40,7 +40,7 @@ description: Classes for undo/redo management, and smart data structures. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_events diff --git a/modules/juce_dsp/juce_dsp.h b/modules/juce_dsp/juce_dsp.h index 17ca0c0843..b2d5f404b0 100644 --- a/modules/juce_dsp/juce_dsp.h +++ b/modules/juce_dsp/juce_dsp.h @@ -40,7 +40,7 @@ description: Classes for audio buffer manipulation, digital audio processing, filtering, oversampling, fast math functions etc. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_audio_formats OSXFrameworks: Accelerate diff --git a/modules/juce_dsp/widgets/juce_WaveShaper.h b/modules/juce_dsp/widgets/juce_WaveShaper.h index 30dfdb3b35..995c20e7d7 100644 --- a/modules/juce_dsp/widgets/juce_WaveShaper.h +++ b/modules/juce_dsp/widgets/juce_WaveShaper.h @@ -71,7 +71,7 @@ struct WaveShaper }; //============================================================================== -#if JUCE_CXX17_IS_AVAILABLE && ! ((JUCE_MAC || JUCE_IOS) && JUCE_CLANG && __clang_major__ < 10) +#if ! ((JUCE_MAC || JUCE_IOS) && JUCE_CLANG && __clang_major__ < 10) template static WaveShaper, Functor> CreateWaveShaper (Functor functionToUse) { return {functionToUse}; } #else diff --git a/modules/juce_events/juce_events.h b/modules/juce_events/juce_events.h index 6f7e50604e..abf5747fe0 100644 --- a/modules/juce_events/juce_events.h +++ b/modules/juce_events/juce_events.h @@ -37,7 +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 + minimumCppStandard: 17 dependencies: juce_core diff --git a/modules/juce_graphics/juce_graphics.h b/modules/juce_graphics/juce_graphics.h index d10c3ceed9..f635cee7de 100644 --- a/modules/juce_graphics/juce_graphics.h +++ b/modules/juce_graphics/juce_graphics.h @@ -40,7 +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 + minimumCppStandard: 17 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 ff32e26ff1..fc76842099 100644 --- a/modules/juce_gui_basics/juce_gui_basics.h +++ b/modules/juce_gui_basics/juce_gui_basics.h @@ -40,7 +40,7 @@ description: Basic user-interface components and related classes. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_graphics juce_data_structures OSXFrameworks: Cocoa QuartzCore diff --git a/modules/juce_gui_extra/juce_gui_extra.h b/modules/juce_gui_extra/juce_gui_extra.h index 7dd7c685a0..11fa9027ed 100644 --- a/modules/juce_gui_extra/juce_gui_extra.h +++ b/modules/juce_gui_extra/juce_gui_extra.h @@ -40,7 +40,7 @@ description: Miscellaneous GUI classes for specialised tasks. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_gui_basics OSXFrameworks: WebKit diff --git a/modules/juce_opengl/juce_opengl.h b/modules/juce_opengl/juce_opengl.h index 8cf05c2728..975f0a5aea 100644 --- a/modules/juce_opengl/juce_opengl.h +++ b/modules/juce_opengl/juce_opengl.h @@ -40,7 +40,7 @@ description: Classes for rendering OpenGL in a JUCE window. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_gui_extra OSXFrameworks: OpenGL diff --git a/modules/juce_osc/juce_osc.h b/modules/juce_osc/juce_osc.h index a1e8444ad0..e3344f009c 100644 --- a/modules/juce_osc/juce_osc.h +++ b/modules/juce_osc/juce_osc.h @@ -40,7 +40,7 @@ description: Open Sound Control implementation. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_events diff --git a/modules/juce_product_unlocking/juce_product_unlocking.h b/modules/juce_product_unlocking/juce_product_unlocking.h index d5726bf1dd..d0101626ca 100644 --- a/modules/juce_product_unlocking/juce_product_unlocking.h +++ b/modules/juce_product_unlocking/juce_product_unlocking.h @@ -40,7 +40,7 @@ description: Classes for online product authentication website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_cryptography diff --git a/modules/juce_video/juce_video.h b/modules/juce_video/juce_video.h index d08cc542f9..064554e13f 100644 --- a/modules/juce_video/juce_video.h +++ b/modules/juce_video/juce_video.h @@ -40,7 +40,7 @@ description: Classes for playing video and capturing camera input. website: http://www.juce.com/juce license: GPL/Commercial - minimumCppStandard: 14 + minimumCppStandard: 17 dependencies: juce_gui_extra OSXFrameworks: AVKit AVFoundation CoreMedia