From 8aa40a72c84ceb0aea4875977800ca2c6a102db9 Mon Sep 17 00:00:00 2001 From: ed Date: Thu, 15 Mar 2018 10:44:40 +0000 Subject: [PATCH] Add guards to juce_blocks_basics, juce_dsp and juce_osc modules to ensure that they are not built if the compiler does not support them --- modules/juce_blocks_basics/juce_blocks_basics.cpp | 9 ++++++++- modules/juce_blocks_basics/juce_blocks_basics.h | 8 ++++++++ modules/juce_dsp/juce_dsp.cpp | 7 +++++++ modules/juce_dsp/juce_dsp.h | 9 +++++++++ modules/juce_osc/juce_osc.cpp | 8 ++++++++ modules/juce_osc/juce_osc.h | 7 +++++++ 6 files changed, 47 insertions(+), 1 deletion(-) diff --git a/modules/juce_blocks_basics/juce_blocks_basics.cpp b/modules/juce_blocks_basics/juce_blocks_basics.cpp index 27a5dd1b40..15e4a18c10 100644 --- a/modules/juce_blocks_basics/juce_blocks_basics.cpp +++ b/modules/juce_blocks_basics/juce_blocks_basics.cpp @@ -20,9 +20,14 @@ ============================================================================== */ - #include "juce_blocks_basics.h" +#if (! defined (JUCE_STDLIB_HAS_STD_FUNCTION_SUPPORT)) || (! defined (JUCE_HAS_CONSTEXPR)) + #ifndef JUCE_DEMO_RUNNER + #error "juce_blocks_basics module requires your compiler to have a newer version of the standard library" + #endif +#else + #include "protocol/juce_BitPackingUtilities.h" #include "protocol/juce_BlocksProtocolDefinitions.h" #include "protocol/juce_HostPacketDecoder.h" @@ -35,3 +40,5 @@ #include "topology/juce_RuleBasedTopologySource.cpp" #include "visualisers/juce_DrumPadLEDProgram.cpp" #include "visualisers/juce_BitmapLEDProgram.cpp" + +#endif diff --git a/modules/juce_blocks_basics/juce_blocks_basics.h b/modules/juce_blocks_basics/juce_blocks_basics.h index 65e4548cd6..63e0984e9d 100644 --- a/modules/juce_blocks_basics/juce_blocks_basics.h +++ b/modules/juce_blocks_basics/juce_blocks_basics.h @@ -50,6 +50,12 @@ #include #include +#if (! defined (JUCE_STDLIB_HAS_STD_FUNCTION_SUPPORT)) || (! defined (JUCE_HAS_CONSTEXPR)) + #ifndef JUCE_DEMO_RUNNER + #error "juce_blocks_basics module requires your compiler to have a newer version of the standard library" + #endif +#else + namespace juce { class TouchSurface; @@ -80,3 +86,5 @@ namespace juce #include "littlefoot/juce_LittleFootCompiler.h" #include "littlefoot/juce_LittleFootRemoteHeap.h" } + +#endif diff --git a/modules/juce_dsp/juce_dsp.cpp b/modules/juce_dsp/juce_dsp.cpp index f402fc3b4b..5b770dfc8c 100644 --- a/modules/juce_dsp/juce_dsp.cpp +++ b/modules/juce_dsp/juce_dsp.cpp @@ -35,6 +35,12 @@ #include "juce_dsp.h" +#if (! defined (JUCE_STDLIB_HAS_STD_FUNCTION_SUPPORT)) || (! defined (JUCE_HAS_CONSTEXPR)) + #ifndef JUCE_DEMO_RUNNER + #error "juce_dsp module requires your compiler to have a newer version of the standard library" + #endif +#else + #ifndef JUCE_USE_VDSP_FRAMEWORK #define JUCE_USE_VDSP_FRAMEWORK 1 #endif @@ -83,3 +89,4 @@ #include "frequency/juce_FFT_test.cpp" #include "processors/juce_FIRFilter_test.cpp" #endif +#endif diff --git a/modules/juce_dsp/juce_dsp.h b/modules/juce_dsp/juce_dsp.h index cccca7b1c4..0e4ecbd072 100644 --- a/modules/juce_dsp/juce_dsp.h +++ b/modules/juce_dsp/juce_dsp.h @@ -53,11 +53,18 @@ #pragma once + #define JUCE_DSP_H_INCLUDED #include #include +#if (! defined (JUCE_STDLIB_HAS_STD_FUNCTION_SUPPORT)) || (! defined (JUCE_HAS_CONSTEXPR)) + #ifndef JUCE_DEMO_RUNNER + #error "juce_dsp module requires your compiler to have a newer version of the standard library" + #endif +#else + #if defined(_M_X64) || defined(__amd64__) || defined(__SSE2__) || (defined(_M_IX86_FP) && _M_IX86_FP == 2) #if defined(_M_X64) || defined(__amd64__) @@ -264,3 +271,5 @@ namespace juce #include "frequency/juce_Convolution.h" #include "frequency/juce_Windowing.h" #include "filter_design/juce_FilterDesign.h" + +#endif diff --git a/modules/juce_osc/juce_osc.cpp b/modules/juce_osc/juce_osc.cpp index 6e026de4df..3a7ebf9cd0 100644 --- a/modules/juce_osc/juce_osc.cpp +++ b/modules/juce_osc/juce_osc.cpp @@ -35,6 +35,12 @@ #include "juce_osc.h" +#ifndef JUCE_STDLIB_HAS_STD_FUNCTION_SUPPORT + #ifndef JUCE_DEMO_RUNNER + #error "juce_osc module requires your compiler to have a newer version of the standard library" + #endif +#else + #include "osc/juce_OSCTypes.cpp" #include "osc/juce_OSCTimeTag.cpp" #include "osc/juce_OSCArgument.cpp" @@ -43,3 +49,5 @@ #include "osc/juce_OSCBundle.cpp" #include "osc/juce_OSCReceiver.cpp" #include "osc/juce_OSCSender.cpp" + +#endif diff --git a/modules/juce_osc/juce_osc.h b/modules/juce_osc/juce_osc.h index aa7c504a63..966fa42013 100644 --- a/modules/juce_osc/juce_osc.h +++ b/modules/juce_osc/juce_osc.h @@ -54,6 +54,11 @@ #include #include +#ifndef JUCE_STDLIB_HAS_STD_FUNCTION_SUPPORT + #ifndef JUCE_DEMO_RUNNER + #error "juce_osc module requires your compiler to have a newer version of the standard library" + #endif +#else //============================================================================== #include "osc/juce_OSCTypes.h" @@ -64,3 +69,5 @@ #include "osc/juce_OSCBundle.h" #include "osc/juce_OSCReceiver.h" #include "osc/juce_OSCSender.h" + +#endif