mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
Update the minimum C++ standard to C++14
This commit is contained in:
parent
0c56fa8fa0
commit
78be43888e
32 changed files with 71 additions and 56 deletions
|
|
@ -4,6 +4,26 @@ JUCE breaking changes
|
||||||
Develop
|
Develop
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
Change
|
||||||
|
------
|
||||||
|
The minimum supported C++ standard is now C++14 and the oldest supported
|
||||||
|
compilers on macOS and Linux are now Xcode 9.2, GCC 5.0 and Clang 3.4.
|
||||||
|
|
||||||
|
Possible Issues
|
||||||
|
---------------
|
||||||
|
Older compilers will no longer be able to compile JUCE. People using Xcode 8.5
|
||||||
|
on OS X 10.11 will need to update the operating system to OS X 10.12 to be able
|
||||||
|
to use Xcode 9.2.
|
||||||
|
|
||||||
|
Workaround
|
||||||
|
----------
|
||||||
|
No workaround is available.
|
||||||
|
|
||||||
|
Rationale
|
||||||
|
---------
|
||||||
|
This compiler upgrade will allow the use of C++14 within the framework.
|
||||||
|
|
||||||
|
|
||||||
Change
|
Change
|
||||||
------
|
------
|
||||||
Platform GL headers are no longer included in juce_opengl.h
|
Platform GL headers are no longer included in juce_opengl.h
|
||||||
|
|
|
||||||
|
|
@ -58,9 +58,9 @@ of the target you wish to build.
|
||||||
|
|
||||||
#### Building JUCE Projects
|
#### Building JUCE Projects
|
||||||
|
|
||||||
- __macOS/iOS__: macOS 10.11 and Xcode 7.3.1
|
- __macOS/iOS__: Xcode 9.2 (macOS 10.12.6)
|
||||||
- __Windows__: Windows 8.1 and Visual Studio 2015 Update 3 64-bit
|
- __Windows__: Windows 8.1 and Visual Studio 2015 Update 3 64-bit
|
||||||
- __Linux__: GCC 4.8 (for a full list of dependencies, see
|
- __Linux__: g++ 5.0 or Clang 3.4 (for a full list of dependencies, see
|
||||||
[here](/docs/Linux%20Dependencies.md)).
|
[here](/docs/Linux%20Dependencies.md)).
|
||||||
- __Android__: Android Studio on Windows, macOS or Linux
|
- __Android__: Android Studio on Windows, macOS or Linux
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ function(_juce_create_atomic_target target_name)
|
||||||
|
|
||||||
try_compile(compile_result "${test_bindir}" "${test_file_name}"
|
try_compile(compile_result "${test_bindir}" "${test_file_name}"
|
||||||
OUTPUT_VARIABLE test_build_output_0
|
OUTPUT_VARIABLE test_build_output_0
|
||||||
CXX_STANDARD 11
|
CXX_STANDARD 14
|
||||||
CXX_STANDARD_REQUIRED TRUE
|
CXX_STANDARD_REQUIRED TRUE
|
||||||
CXX_EXTENSIONS FALSE)
|
CXX_EXTENSIONS FALSE)
|
||||||
|
|
||||||
|
|
@ -59,7 +59,7 @@ function(_juce_create_atomic_target target_name)
|
||||||
try_compile(compile_result "${test_bindir}" "${test_file_name}"
|
try_compile(compile_result "${test_bindir}" "${test_file_name}"
|
||||||
OUTPUT_VARIABLE test_build_output_1
|
OUTPUT_VARIABLE test_build_output_1
|
||||||
LINK_LIBRARIES atomic
|
LINK_LIBRARIES atomic
|
||||||
CXX_STANDARD 11
|
CXX_STANDARD 14
|
||||||
CXX_STANDARD_REQUIRED TRUE
|
CXX_STANDARD_REQUIRED TRUE
|
||||||
CXX_EXTENSIONS FALSE)
|
CXX_EXTENSIONS FALSE)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -501,7 +501,7 @@ function(_juce_add_plugin_wrapper_target format path out_path)
|
||||||
_juce_add_plugin_definitions("${target_name}" INTERFACE ${format})
|
_juce_add_plugin_definitions("${target_name}" INTERFACE ${format})
|
||||||
_juce_add_standard_defs("${target_name}")
|
_juce_add_standard_defs("${target_name}")
|
||||||
|
|
||||||
target_compile_features("${target_name}" INTERFACE cxx_std_11)
|
target_compile_features("${target_name}" INTERFACE cxx_std_14)
|
||||||
add_library("juce::${target_name}" ALIAS "${target_name}")
|
add_library("juce::${target_name}" ALIAS "${target_name}")
|
||||||
|
|
||||||
if(format STREQUAL "AUv3")
|
if(format STREQUAL "AUv3")
|
||||||
|
|
@ -922,7 +922,7 @@ function(juce_add_binary_data target)
|
||||||
|
|
||||||
target_sources(${target} PRIVATE "${binary_file_names}")
|
target_sources(${target} PRIVATE "${binary_file_names}")
|
||||||
target_include_directories(${target} INTERFACE ${juce_binary_data_folder})
|
target_include_directories(${target} INTERFACE ${juce_binary_data_folder})
|
||||||
target_compile_features(${target} PRIVATE cxx_std_11)
|
target_compile_features(${target} PRIVATE cxx_std_14)
|
||||||
|
|
||||||
# This fixes an issue where Xcode is unable to find binary data during archive.
|
# This fixes an issue where Xcode is unable to find binary data during archive.
|
||||||
if(CMAKE_GENERATOR STREQUAL "Xcode")
|
if(CMAKE_GENERATOR STREQUAL "Xcode")
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ ifeq ($(CONFIG),Debug)
|
||||||
JUCE_TARGET_APP := Projucer
|
JUCE_TARGET_APP := Projucer
|
||||||
|
|
||||||
JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS)
|
JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS)
|
||||||
JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS)
|
JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS)
|
||||||
JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs freetype2) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS)
|
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)
|
CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR)
|
||||||
|
|
@ -61,7 +61,7 @@ ifeq ($(CONFIG),Release)
|
||||||
JUCE_TARGET_APP := Projucer
|
JUCE_TARGET_APP := Projucer
|
||||||
|
|
||||||
JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS)
|
JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS)
|
||||||
JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS)
|
JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS)
|
||||||
JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs freetype2) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS)
|
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)
|
CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR)
|
||||||
|
|
|
||||||
|
|
@ -1118,7 +1118,7 @@
|
||||||
0BC15DC2E5FE5ECFFB398D49 /* Release */ = {
|
0BC15DC2E5FE5ECFFB398D49 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "c++11";
|
CLANG_CXX_LANGUAGE_STANDARD = "c++14";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||||
CODE_SIGN_IDENTITY = "";
|
CODE_SIGN_IDENTITY = "";
|
||||||
|
|
@ -1171,7 +1171,7 @@
|
||||||
INFOPLIST_FILE = Info-App.plist;
|
INFOPLIST_FILE = Info-App.plist;
|
||||||
INFOPLIST_PREPROCESS = NO;
|
INFOPLIST_PREPROCESS = NO;
|
||||||
INSTALL_PATH = "$(HOME)/Applications";
|
INSTALL_PATH = "$(HOME)/Applications";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../Build $(SRCROOT)/../../../../modules";
|
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../Build $(SRCROOT)/../../../../modules";
|
||||||
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum";
|
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer;
|
PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer;
|
||||||
|
|
@ -1185,7 +1185,7 @@
|
||||||
0CC6C439D038EDA0D7F10DF0 /* Debug */ = {
|
0CC6C439D038EDA0D7F10DF0 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "c++11";
|
CLANG_CXX_LANGUAGE_STANDARD = "c++14";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||||
CODE_SIGN_IDENTITY = "";
|
CODE_SIGN_IDENTITY = "";
|
||||||
|
|
@ -1238,7 +1238,7 @@
|
||||||
INFOPLIST_FILE = Info-App.plist;
|
INFOPLIST_FILE = Info-App.plist;
|
||||||
INFOPLIST_PREPROCESS = NO;
|
INFOPLIST_PREPROCESS = NO;
|
||||||
INSTALL_PATH = "$(HOME)/Applications";
|
INSTALL_PATH = "$(HOME)/Applications";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../Build $(SRCROOT)/../../../../modules";
|
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../Build $(SRCROOT)/../../../../modules";
|
||||||
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum";
|
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wunused-private-field -Wbool-conversion -Wextra-semi -Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align -Winconsistent-missing-destructor-override -Wshift-sign-overflow -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer;
|
PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer;
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
<JUCERPROJECT id="M70qfTRRk" name="Projucer" projectType="guiapp" juceFolder="../../juce"
|
<JUCERPROJECT id="M70qfTRRk" name="Projucer" projectType="guiapp" juceFolder="../../juce"
|
||||||
version="6.0.8" bundleIdentifier="com.juce.theprojucer" splashScreenColour="Dark"
|
version="6.0.8" bundleIdentifier="com.juce.theprojucer" splashScreenColour="Dark"
|
||||||
displaySplashScreen="0" reportAppUsage="0" companyName="Raw Material Software Limited"
|
displaySplashScreen="0" reportAppUsage="0" companyName="Raw Material Software Limited"
|
||||||
companyCopyright="Raw Material Software Limited" cppLanguageStandard="11"
|
companyCopyright="Raw Material Software Limited" useAppConfig="0"
|
||||||
useAppConfig="0" addUsingNamespaceToJuceHeader="1" jucerFormatVersion="1">
|
addUsingNamespaceToJuceHeader="1" jucerFormatVersion="1">
|
||||||
<EXPORTFORMATS>
|
<EXPORTFORMATS>
|
||||||
<XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK"
|
<XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK"
|
||||||
documentExtensions=".jucer" objCExtraSuffix="zkVtji" bigIcon="Zrx1Gl"
|
documentExtensions=".jucer" objCExtraSuffix="zkVtji" bigIcon="Zrx1Gl"
|
||||||
|
|
@ -13,9 +13,9 @@
|
||||||
applicationCategory="public.app-category.developer-tools">
|
applicationCategory="public.app-category.developer-tools">
|
||||||
<CONFIGURATIONS>
|
<CONFIGURATIONS>
|
||||||
<CONFIGURATION name="Debug" isDebug="1" targetName="Projucer" cppLibType="libc++"
|
<CONFIGURATION name="Debug" isDebug="1" targetName="Projucer" cppLibType="libc++"
|
||||||
recommendedWarnings="LLVM"/>
|
recommendedWarnings="LLVM" macOSDeploymentTarget="10.12"/>
|
||||||
<CONFIGURATION name="Release" isDebug="0" targetName="Projucer" cppLibType="libc++"
|
<CONFIGURATION name="Release" isDebug="0" targetName="Projucer" cppLibType="libc++"
|
||||||
linkTimeOptimisation="0" recommendedWarnings="LLVM"/>
|
linkTimeOptimisation="0" recommendedWarnings="LLVM" macOSDeploymentTarget="10.12"/>
|
||||||
</CONFIGURATIONS>
|
</CONFIGURATIONS>
|
||||||
<MODULEPATHS>
|
<MODULEPATHS>
|
||||||
<MODULEPATH id="juce_gui_extra" path="../../modules"/>
|
<MODULEPATH id="juce_gui_extra" path="../../modules"/>
|
||||||
|
|
|
||||||
|
|
@ -214,7 +214,7 @@ bool Project::setCppVersionFromOldExporterSettings()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (highestLanguageStandard != -1 && highestLanguageStandard >= 11)
|
if (highestLanguageStandard >= 14)
|
||||||
{
|
{
|
||||||
cppStandardValue = highestLanguageStandard;
|
cppStandardValue = highestLanguageStandard;
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -225,6 +225,9 @@ bool Project::setCppVersionFromOldExporterSettings()
|
||||||
|
|
||||||
void Project::updateDeprecatedProjectSettings()
|
void Project::updateDeprecatedProjectSettings()
|
||||||
{
|
{
|
||||||
|
if (cppStandardValue.get().toString() == "11")
|
||||||
|
cppStandardValue.resetToDefault();
|
||||||
|
|
||||||
for (ExporterIterator exporter (*this); exporter.next();)
|
for (ExporterIterator exporter (*this); exporter.next();)
|
||||||
exporter->updateDeprecatedSettings();
|
exporter->updateDeprecatedSettings();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -205,8 +205,8 @@ public:
|
||||||
bool shouldDisplaySplashScreen() const { return displaySplashScreenValue.get(); }
|
bool shouldDisplaySplashScreen() const { return displaySplashScreenValue.get(); }
|
||||||
String getSplashScreenColourString() const { return splashScreenColourValue.get(); }
|
String getSplashScreenColourString() const { return splashScreenColourValue.get(); }
|
||||||
|
|
||||||
static StringArray getCppStandardStrings() { return { "C++11", "C++14", "C++17", "Use Latest" }; }
|
static StringArray getCppStandardStrings() { return { "C++14", "C++17", "Use Latest" }; }
|
||||||
static Array<var> getCppStandardVars() { return { "11", "14", "17", "latest" }; }
|
static Array<var> getCppStandardVars() { return { "14", "17", "latest" }; }
|
||||||
|
|
||||||
String getCppStandardString() const { return cppStandardValue.get(); }
|
String getCppStandardString() const { return cppStandardValue.get(); }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -576,10 +576,6 @@ public:
|
||||||
cl->createNewChildElement ("TreatWarningAsError")->addTextElement ("true");
|
cl->createNewChildElement ("TreatWarningAsError")->addTextElement ("true");
|
||||||
|
|
||||||
auto cppStandard = owner.project.getCppStandardString();
|
auto cppStandard = owner.project.getCppStandardString();
|
||||||
|
|
||||||
if (cppStandard == "11") // VS doesn't support the C++11 flag so we have to bump it to C++14
|
|
||||||
cppStandard = "14";
|
|
||||||
|
|
||||||
cl->createNewChildElement ("LanguageStandard")->addTextElement ("stdcpp" + cppStandard);
|
cl->createNewChildElement ("LanguageStandard")->addTextElement ("stdcpp" + cppStandard);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes to collect analytics and send to destinations
|
description: Classes to collect analytics and send to destinations
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_gui_basics
|
dependencies: juce_gui_basics
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@
|
||||||
description: Classes for audio buffer manipulation, midi message handling, synthesis, etc.
|
description: Classes for audio buffer manipulation, midi message handling, synthesis, etc.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: ISC
|
license: ISC
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_core
|
dependencies: juce_core
|
||||||
OSXFrameworks: Accelerate
|
OSXFrameworks: Accelerate
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@
|
||||||
description: Classes to play and record from audio and MIDI I/O devices
|
description: Classes to play and record from audio and MIDI I/O devices
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: ISC
|
license: ISC
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_audio_basics, juce_events
|
dependencies: juce_audio_basics, juce_events
|
||||||
OSXFrameworks: CoreAudio CoreMIDI AudioToolbox
|
OSXFrameworks: CoreAudio CoreMIDI AudioToolbox
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for reading and writing various audio file formats.
|
description: Classes for reading and writing various audio file formats.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_audio_basics
|
dependencies: juce_audio_basics
|
||||||
OSXFrameworks: CoreAudio CoreMIDI QuartzCore AudioToolbox
|
OSXFrameworks: CoreAudio CoreMIDI QuartzCore AudioToolbox
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for building VST, VST3, AudioUnit, AAX and RTAS plugins.
|
description: Classes for building VST, VST3, AudioUnit, AAX and RTAS plugins.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_audio_processors
|
dependencies: juce_audio_processors
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for loading and playing VST, AU, LADSPA, or internally-generated audio processors.
|
description: Classes for loading and playing VST, AU, LADSPA, or internally-generated audio processors.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_gui_extra, juce_audio_basics
|
dependencies: juce_gui_extra, juce_audio_basics
|
||||||
OSXFrameworks: CoreAudio CoreMIDI AudioToolbox
|
OSXFrameworks: CoreAudio CoreMIDI AudioToolbox
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for audio-related GUI and miscellaneous tasks.
|
description: Classes for audio-related GUI and miscellaneous tasks.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_audio_processors, juce_audio_formats, juce_audio_devices
|
dependencies: juce_audio_processors, juce_audio_formats, juce_audio_devices
|
||||||
OSXFrameworks: CoreAudioKit DiscRecording
|
OSXFrameworks: CoreAudioKit DiscRecording
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: The Box2D physics engine and some utility classes.
|
description: The Box2D physics engine and some utility classes.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_graphics
|
dependencies: juce_graphics
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@
|
||||||
description: The essential set of basic JUCE classes, as required by all the other JUCE modules. Includes text, container, memory, threading and i/o functionality.
|
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
|
website: http://www.juce.com/juce
|
||||||
license: ISC
|
license: ISC
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
OSXFrameworks: Cocoa Foundation IOKit
|
OSXFrameworks: Cocoa Foundation IOKit
|
||||||
|
|
|
||||||
|
|
@ -65,8 +65,6 @@ void operator delete[] (void* p) noexcept
|
||||||
std::free (p);
|
std::free (p);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_CXX14_IS_AVAILABLE
|
|
||||||
|
|
||||||
void operator delete (void* p, size_t) noexcept
|
void operator delete (void* p, size_t) noexcept
|
||||||
{
|
{
|
||||||
juce::notifyAllocationHooksForThread();
|
juce::notifyAllocationHooksForThread();
|
||||||
|
|
@ -79,8 +77,6 @@ void operator delete[] (void* p, size_t) noexcept
|
||||||
std::free (p);
|
std::free (p);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace juce
|
namespace juce
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,12 +30,8 @@
|
||||||
// GCC
|
// GCC
|
||||||
#if JUCE_GCC
|
#if JUCE_GCC
|
||||||
|
|
||||||
#if (__GNUC__ * 100 + __GNUC_MINOR__) < 407
|
#if (__GNUC__ * 100 + __GNUC_MINOR__) < 500
|
||||||
#error "JUCE requires GCC 4.7 or later"
|
#error "JUCE requires GCC 5.0 or later"
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ! (__cplusplus >= 201103L || defined (__GXX_EXPERIMENTAL_CXX0X__))
|
|
||||||
#error "JUCE requires that GCC has C++11 compatibility enabled"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef JUCE_EXCEPTIONS_DISABLED
|
#ifndef JUCE_EXCEPTIONS_DISABLED
|
||||||
|
|
@ -44,7 +40,7 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define JUCE_CXX14_IS_AVAILABLE ((__cplusplus >= 201402L) || ((__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && (__cplusplus >= 201300L)))
|
#define JUCE_CXX14_IS_AVAILABLE (__cplusplus >= 201402L)
|
||||||
#define JUCE_CXX17_IS_AVAILABLE (__cplusplus >= 201703L)
|
#define JUCE_CXX17_IS_AVAILABLE (__cplusplus >= 201703L)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -53,8 +49,8 @@
|
||||||
// Clang
|
// Clang
|
||||||
#if JUCE_CLANG
|
#if JUCE_CLANG
|
||||||
|
|
||||||
#if (__clang_major__ < 3) || (__clang_major__ == 3 && __clang_minor__ < 3)
|
#if (__clang_major__ < 3) || (__clang_major__ == 3 && __clang_minor__ < 4)
|
||||||
#error "JUCE requires Clang 3.3 or later"
|
#error "JUCE requires Clang 3.4 or later"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef JUCE_COMPILER_SUPPORTS_ARC
|
#ifndef JUCE_COMPILER_SUPPORTS_ARC
|
||||||
|
|
@ -95,21 +91,8 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
// C++ library
|
#if ! JUCE_CXX14_IS_AVAILABLE
|
||||||
#if (defined (__GLIBCXX__) && __GLIBCXX__ < 20130322) || (defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION < 3700))
|
#error "JUCE requires C++14 or later"
|
||||||
#error "JUCE requires a C++ library containing std::atomic"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
#if (! JUCE_MSVC) && (! JUCE_CXX14_IS_AVAILABLE)
|
|
||||||
namespace std
|
|
||||||
{
|
|
||||||
template <typename T, typename... Args>
|
|
||||||
unique_ptr<T> make_unique (Args&&... args)
|
|
||||||
{
|
|
||||||
return unique_ptr<T> (new T (std::forward<Args> (args)...));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for various basic cryptography functions, including RSA, Blowfish, MD5, SHA, etc.
|
description: Classes for various basic cryptography functions, including RSA, Blowfish, MD5, SHA, etc.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_core
|
dependencies: juce_core
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for undo/redo management, and smart data structures.
|
description: Classes for undo/redo management, and smart data structures.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_events
|
dependencies: juce_events
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@
|
||||||
description: Classes for running an application's main event loop and sending/receiving messages, timers, etc.
|
description: Classes for running an application's main event loop and sending/receiving messages, timers, etc.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: ISC
|
license: ISC
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_core
|
dependencies: juce_core
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for 2D vector graphics, image loading/saving, font handling, etc.
|
description: Classes for 2D vector graphics, image loading/saving, font handling, etc.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_events
|
dependencies: juce_events
|
||||||
OSXFrameworks: Cocoa QuartzCore
|
OSXFrameworks: Cocoa QuartzCore
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Basic user-interface components and related classes.
|
description: Basic user-interface components and related classes.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_graphics juce_data_structures
|
dependencies: juce_graphics juce_data_structures
|
||||||
OSXFrameworks: Cocoa Carbon QuartzCore
|
OSXFrameworks: Cocoa Carbon QuartzCore
|
||||||
|
|
|
||||||
|
|
@ -110,17 +110,15 @@
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
#elif (JUCE_LINUX || JUCE_BSD) && JUCE_WEB_BROWSER
|
#elif (JUCE_LINUX || JUCE_BSD) && JUCE_WEB_BROWSER
|
||||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wzero-as-null-pointer-constant", "-Wparentheses")
|
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wzero-as-null-pointer-constant", "-Wparentheses", "-Wdeprecated-declarations")
|
||||||
|
|
||||||
// If you're missing this header, you need to install the webkit2gtk-4.0 package
|
// If you're missing this header, you need to install the webkit2gtk-4.0 package
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
|
||||||
|
|
||||||
// If you're missing these headers, you need to install the webkit2gtk-4.0 package
|
|
||||||
#include <gtk/gtkx.h>
|
#include <gtk/gtkx.h>
|
||||||
#include <glib-unix.h>
|
#include <glib-unix.h>
|
||||||
#include <webkit2/webkit2.h>
|
#include <webkit2/webkit2.h>
|
||||||
|
|
||||||
|
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Miscellaneous GUI classes for specialised tasks.
|
description: Miscellaneous GUI classes for specialised tasks.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_gui_basics
|
dependencies: juce_gui_basics
|
||||||
OSXFrameworks: WebKit
|
OSXFrameworks: WebKit
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for rendering OpenGL in a JUCE window.
|
description: Classes for rendering OpenGL in a JUCE window.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_gui_extra
|
dependencies: juce_gui_extra
|
||||||
OSXFrameworks: OpenGL
|
OSXFrameworks: OpenGL
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Open Sound Control implementation.
|
description: Open Sound Control implementation.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_events
|
dependencies: juce_events
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for online product authentication
|
description: Classes for online product authentication
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_cryptography
|
dependencies: juce_cryptography
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
description: Classes for playing video and capturing camera input.
|
description: Classes for playing video and capturing camera input.
|
||||||
website: http://www.juce.com/juce
|
website: http://www.juce.com/juce
|
||||||
license: GPL/Commercial
|
license: GPL/Commercial
|
||||||
|
minimumCppStandard: 14
|
||||||
|
|
||||||
dependencies: juce_gui_extra
|
dependencies: juce_gui_extra
|
||||||
OSXFrameworks: AVKit AVFoundation CoreMedia
|
OSXFrameworks: AVKit AVFoundation CoreMedia
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue