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

Build: Update the minimum C++ standard to C++17

This commit is contained in:
reuk 2022-09-06 18:43:59 +01:00
parent e9e39de069
commit b3a4d54a72
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
90 changed files with 213 additions and 141 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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})

View file

@ -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

View file

@ -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",

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -113,18 +113,7 @@
#include <iphlpapi.h>
#include <accctrl.h>
#include <aclapi.h>
#if ! JUCE_CXX17_IS_AVAILABLE
#pragma push_macro ("WIN_NOEXCEPT")
#define WIN_NOEXCEPT
#endif
#include <mapi.h>
#if ! JUCE_CXX17_IS_AVAILABLE
#pragma pop_macro ("WIN_NOEXCEPT")
#endif
#include <float.h>
#include <process.h>
#include <shlobj.h>

View file

@ -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

View file

@ -72,6 +72,7 @@
#include <utility>
#include <vector>
#include <set>
#include <optional>
//==============================================================================
#include "juce_CompilerSupport.h"

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 <typename Functor>
static WaveShaper<typename std::invoke_result<Functor>, Functor> CreateWaveShaper (Functor functionToUse) { return {functionToUse}; }
#else

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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