diff --git a/examples/Demo/Builds/Android/AndroidManifest.xml b/examples/Demo/Builds/Android/AndroidManifest.xml index 426e0ccc3a..6ef840f4f1 100644 --- a/examples/Demo/Builds/Android/AndroidManifest.xml +++ b/examples/Demo/Builds/Android/AndroidManifest.xml @@ -9,7 +9,7 @@ - diff --git a/modules/juce_audio_devices/juce_audio_devices.cpp b/modules/juce_audio_devices/juce_audio_devices.cpp index 172b0e557a..e5717830e6 100644 --- a/modules/juce_audio_devices/juce_audio_devices.cpp +++ b/modules/juce_audio_devices/juce_audio_devices.cpp @@ -31,7 +31,12 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 +#define JUCE_CORE_INCLUDE_COM_SMART_PTR 1 +#define JUCE_CORE_INCLUDE_JNI_HELPERS 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 +#define JUCE_EVENTS_INCLUDE_WIN32_MESSAGE_WINDOW 1 + #include "juce_audio_devices.h" //============================================================================== @@ -141,7 +146,6 @@ namespace juce //============================================================================== #if JUCE_MAC - #include "../juce_core/native/juce_osx_ObjCHelpers.h" #include "native/juce_mac_CoreAudio.cpp" #include "native/juce_mac_CoreMidi.cpp" @@ -160,8 +164,6 @@ namespace juce //============================================================================== #elif JUCE_WINDOWS - #include "../juce_core/native/juce_win32_ComSmartPtr.h" - #include "../juce_events/native/juce_win32_HiddenMessageWindow.h" #if JUCE_WASAPI #include "native/juce_win32_WASAPI.cpp" @@ -203,7 +205,6 @@ namespace juce //============================================================================== #elif JUCE_ANDROID - #include "../juce_core/native/juce_android_JNIHelpers.h" #include "native/juce_android_Audio.cpp" #include "native/juce_android_Midi.cpp" diff --git a/modules/juce_audio_formats/juce_audio_formats.cpp b/modules/juce_audio_formats/juce_audio_formats.cpp index 856e82019a..499fae1bc0 100644 --- a/modules/juce_audio_formats/juce_audio_formats.cpp +++ b/modules/juce_audio_formats/juce_audio_formats.cpp @@ -31,7 +31,10 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_COM_SMART_PTR 1 +#define JUCE_CORE_INCLUDE_JNI_HELPERS 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 + #include "juce_audio_formats.h" //============================================================================== @@ -81,14 +84,9 @@ namespace juce { #if JUCE_ANDROID - #include "../juce_core/native/juce_android_JNIHelpers.h" #undef JUCE_QUICKTIME #endif -#if JUCE_WINDOWS - #include "../juce_core/native/juce_win32_ComSmartPtr.h" -#endif - #include "format/juce_AudioFormat.cpp" #include "format/juce_AudioFormatManager.cpp" #include "format/juce_AudioFormatReader.cpp" diff --git a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm index 532ac3bd24..354d56b13c 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm @@ -71,12 +71,12 @@ #endif #define JUCE_MAC_WINDOW_VISIBITY_BODGE 1 +#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 #include "../utility/juce_IncludeModuleHeaders.h" #include "../utility/juce_FakeMouseMoveGenerator.h" #include "../utility/juce_CarbonVisibility.h" #include "../utility/juce_PluginBusUtilities.h" -#include "../../juce_core/native/juce_osx_ObjCHelpers.h" //============================================================================== static Array activePlugins, activeUIs; diff --git a/modules/juce_audio_processors/juce_audio_processors.cpp b/modules/juce_audio_processors/juce_audio_processors.cpp index dbefccbfb4..59db73571e 100644 --- a/modules/juce_audio_processors/juce_audio_processors.cpp +++ b/modules/juce_audio_processors/juce_audio_processors.cpp @@ -31,7 +31,8 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 + #include "juce_audio_processors.h" #include "../juce_gui_extra/juce_gui_extra.h" diff --git a/modules/juce_audio_utils/juce_audio_utils.cpp b/modules/juce_audio_utils/juce_audio_utils.cpp index fc845b66b9..37a2dc3aae 100644 --- a/modules/juce_audio_utils/juce_audio_utils.cpp +++ b/modules/juce_audio_utils/juce_audio_utils.cpp @@ -31,7 +31,9 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_JNI_HELPERS 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 + #include "juce_audio_utils.h" namespace juce @@ -54,7 +56,6 @@ namespace juce #elif JUCE_IOS #include "native/juce_ios_BluetoothMidiDevicePairingDialogue.mm" #elif JUCE_ANDROID - #include "../juce_core/native/juce_android_JNIHelpers.h" #include "native/juce_android_BluetoothMidiDevicePairingDialogue.cpp" #elif JUCE_LINUX #include "native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp" diff --git a/modules/juce_core/juce_core.cpp b/modules/juce_core/juce_core.cpp index c43d0cd8e3..516aafa4a7 100644 --- a/modules/juce_core/juce_core.cpp +++ b/modules/juce_core/juce_core.cpp @@ -35,7 +35,10 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 +#define JUCE_CORE_INCLUDE_COM_SMART_PTR 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 + #include "juce_core.h" #include @@ -180,10 +183,6 @@ namespace juce #include "files/juce_WildcardFileFilter.cpp" //============================================================================== -#if JUCE_MAC || JUCE_IOS -#include "native/juce_osx_ObjCHelpers.h" -#endif - #if JUCE_ANDROID #include "native/juce_android_JNIHelpers.h" #endif @@ -203,7 +202,6 @@ namespace juce //============================================================================== #elif JUCE_WINDOWS -#include "native/juce_win32_ComSmartPtr.h" #include "native/juce_win32_Files.cpp" #include "native/juce_win32_Network.cpp" #include "native/juce_win32_Registry.cpp" diff --git a/modules/juce_core/juce_core.h b/modules/juce_core/juce_core.h index e9beac3d38..1a782b11ba 100644 --- a/modules/juce_core/juce_core.h +++ b/modules/juce_core/juce_core.h @@ -133,6 +133,10 @@ //============================================================================= //============================================================================= +#if JUCE_CORE_INCLUDE_NATIVE_HEADERS + #include "native/juce_BasicNativeHeaders.h" +#endif + #include "system/juce_StandardHeader.h" namespace juce @@ -269,6 +273,19 @@ extern JUCE_API void JUCE_CALLTYPE logAssertion (const char* file, int line) noe #include "containers/juce_PropertySet.h" #include "memory/juce_SharedResourcePointer.h" +#if JUCE_CORE_INCLUDE_OBJC_HELPERS && (JUCE_MAC || JUCE_IOS) + #include "native/juce_osx_ObjCHelpers.h" +#endif + +#if JUCE_CORE_INCLUDE_COM_SMART_PTR && JUCE_WINDOWS + #include "native/juce_win32_ComSmartPtr.h" +#endif + +#if JUCE_CORE_INCLUDE_JNI_HELPERS && JUCE_ANDROID + #include "native/juce_android_JNIHelpers.h" +#endif + + #ifndef DOXYGEN /* As the very long class names here try to explain, the purpose of this code is to cause diff --git a/modules/juce_core/native/juce_BasicNativeHeaders.h b/modules/juce_core/native/juce_BasicNativeHeaders.h index 6a52ce7fe9..5f778827c7 100644 --- a/modules/juce_core/native/juce_BasicNativeHeaders.h +++ b/modules/juce_core/native/juce_BasicNativeHeaders.h @@ -29,7 +29,6 @@ #ifndef JUCE_BASICNATIVEHEADERS_H_INCLUDED #define JUCE_BASICNATIVEHEADERS_H_INCLUDED -#include "../system/juce_TargetPlatform.h" #undef T //============================================================================== diff --git a/modules/juce_events/juce_events.cpp b/modules/juce_events/juce_events.cpp index 89adf04dcc..5514be444e 100644 --- a/modules/juce_events/juce_events.cpp +++ b/modules/juce_events/juce_events.cpp @@ -31,7 +31,11 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 +#define JUCE_CORE_INCLUDE_JNI_HELPERS 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 +#define JUCE_EVENTS_INCLUDE_WIN32_MESSAGE_WINDOW 1 + #include "juce_events.h" //============================================================================== @@ -69,17 +73,14 @@ namespace juce //============================================================================== #if JUCE_MAC - #include "../juce_core/native/juce_osx_ObjCHelpers.h" #include "native/juce_osx_MessageQueue.h" #include "native/juce_mac_MessageManager.mm" #elif JUCE_IOS - #include "../juce_core/native/juce_osx_ObjCHelpers.h" #include "native/juce_osx_MessageQueue.h" #include "native/juce_ios_MessageManager.mm" #elif JUCE_WINDOWS - #include "native/juce_win32_HiddenMessageWindow.h" #include "native/juce_win32_Messaging.cpp" #elif JUCE_LINUX @@ -87,7 +88,6 @@ namespace juce #include "native/juce_linux_Messaging.cpp" #elif JUCE_ANDROID - #include "../juce_core/native/juce_android_JNIHelpers.h" #include "native/juce_android_Messaging.cpp" #endif diff --git a/modules/juce_events/juce_events.h b/modules/juce_events/juce_events.h index 357df2de15..ffe6e24b66 100644 --- a/modules/juce_events/juce_events.h +++ b/modules/juce_events/juce_events.h @@ -52,6 +52,10 @@ namespace juce #include "interprocess/juce_ConnectedChildProcess.h" #include "native/juce_ScopedXLock.h" +#if JUCE_EVENTS_INCLUDE_WIN32_MESSAGE_WINDOW && JUCE_WINDOWS + #include "native/juce_win32_HiddenMessageWindow.h" +#endif + } #endif // JUCE_EVENTS_H_INCLUDED diff --git a/modules/juce_graphics/juce_graphics.cpp b/modules/juce_graphics/juce_graphics.cpp index 4c0b2e0aa9..a87a166393 100644 --- a/modules/juce_graphics/juce_graphics.cpp +++ b/modules/juce_graphics/juce_graphics.cpp @@ -31,7 +31,12 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 +#define JUCE_CORE_INCLUDE_COM_SMART_PTR 1 +#define JUCE_CORE_INCLUDE_JNI_HELPERS 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 +#define JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS 1 + #include "juce_graphics.h" //============================================================================== @@ -127,13 +132,10 @@ namespace juce //============================================================================== #if JUCE_MAC || JUCE_IOS - #include "../juce_core/native/juce_osx_ObjCHelpers.h" - #include "native/juce_mac_CoreGraphicsHelpers.h" #include "native/juce_mac_Fonts.mm" #include "native/juce_mac_CoreGraphicsContext.mm" #elif JUCE_WINDOWS - #include "../juce_core/native/juce_win32_ComSmartPtr.h" #include "native/juce_win32_DirectWriteTypeface.cpp" #include "native/juce_win32_DirectWriteTypeLayout.cpp" #include "native/juce_win32_Fonts.cpp" @@ -145,7 +147,6 @@ namespace juce #include "native/juce_linux_Fonts.cpp" #elif JUCE_ANDROID - #include "../juce_core/native/juce_android_JNIHelpers.h" #include "native/juce_android_GraphicsContext.cpp" #include "native/juce_android_Fonts.cpp" diff --git a/modules/juce_graphics/juce_graphics.h b/modules/juce_graphics/juce_graphics.h index 3aa7a16e5c..c6956d17bb 100644 --- a/modules/juce_graphics/juce_graphics.h +++ b/modules/juce_graphics/juce_graphics.h @@ -108,6 +108,11 @@ class LowLevelGraphicsContext; #include "effects/juce_DropShadowEffect.h" #include "effects/juce_GlowEffect.h" +#if JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS && JUCE_MAC + #include "native/juce_mac_CoreGraphicsHelpers.h" + #include "native/juce_mac_CoreGraphicsContext.h" +#endif + } #endif // JUCE_GRAPHICS_H_INCLUDED diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp index 33a5955438..b65ae42509 100644 --- a/modules/juce_gui_basics/juce_gui_basics.cpp +++ b/modules/juce_gui_basics/juce_gui_basics.cpp @@ -33,7 +33,13 @@ #define NS_FORMAT_FUNCTION(F,A) // To avoid spurious warnings from GCC -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 +#define JUCE_CORE_INCLUDE_COM_SMART_PTR 1 +#define JUCE_CORE_INCLUDE_JNI_HELPERS 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 +#define JUCE_EVENTS_INCLUDE_WIN32_MESSAGE_WINDOW 1 +#define JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS 1 + #include "juce_gui_basics.h" //============================================================================== @@ -256,9 +262,6 @@ extern bool juce_areThereAnyAlwaysOnTopWindows(); #endif #if JUCE_MAC || JUCE_IOS - #include "../juce_core/native/juce_osx_ObjCHelpers.h" - #include "../juce_graphics/native/juce_mac_CoreGraphicsHelpers.h" - #include "../juce_graphics/native/juce_mac_CoreGraphicsContext.h" #if JUCE_IOS #include "native/juce_ios_UIViewComponentPeer.mm" @@ -273,8 +276,6 @@ extern bool juce_areThereAnyAlwaysOnTopWindows(); #include "native/juce_mac_FileChooser.mm" #elif JUCE_WINDOWS - #include "../juce_core/native/juce_win32_ComSmartPtr.h" - #include "../juce_events/native/juce_win32_HiddenMessageWindow.h" #include "native/juce_win32_Windowing.cpp" #include "native/juce_win32_DragAndDrop.cpp" #include "native/juce_win32_FileChooser.cpp" @@ -285,7 +286,6 @@ extern bool juce_areThereAnyAlwaysOnTopWindows(); #include "native/juce_linux_FileChooser.cpp" #elif JUCE_ANDROID - #include "../juce_core/native/juce_android_JNIHelpers.h" #include "native/juce_android_Windowing.cpp" #include "native/juce_android_FileChooser.cpp" diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm index c0eb340076..e61568dd6a 100644 --- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm +++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm @@ -792,7 +792,6 @@ public: #if USE_COREGRAPHICS_RENDERING if (usingCoreGraphics) { - CoreGraphicsContext context (cg, (float) [view frame].size.height, displayScale); insideDrawRect = true; diff --git a/modules/juce_gui_extra/juce_gui_extra.cpp b/modules/juce_gui_extra/juce_gui_extra.cpp index 96b15280ae..89c7397031 100644 --- a/modules/juce_gui_extra/juce_gui_extra.cpp +++ b/modules/juce_gui_extra/juce_gui_extra.cpp @@ -31,7 +31,12 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 +#define JUCE_CORE_INCLUDE_COM_SMART_PTR 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 +#define JUCE_EVENTS_INCLUDE_WIN32_MESSAGE_WINDOW 1 +#define JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS 1 + #include "juce_gui_extra.h" //============================================================================== @@ -69,10 +74,6 @@ namespace juce { -#if JUCE_MAC || JUCE_IOS - #include "../juce_core/native/juce_osx_ObjCHelpers.h" -#endif - #include "documents/juce_FileBasedDocument.cpp" #include "code_editor/juce_CodeDocument.cpp" #include "code_editor/juce_CodeEditorComponent.cpp" @@ -98,9 +99,6 @@ namespace juce //============================================================================== #if JUCE_MAC || JUCE_IOS - #include "../juce_core/native/juce_osx_ObjCHelpers.h" - #include "../juce_graphics/native/juce_mac_CoreGraphicsHelpers.h" - #if JUCE_MAC #include "native/juce_mac_NSViewComponent.mm" #include "native/juce_mac_AppleRemote.mm" @@ -117,8 +115,6 @@ namespace juce //============================================================================== #elif JUCE_WINDOWS - #include "../juce_core/native/juce_win32_ComSmartPtr.h" - #include "../juce_events/native/juce_win32_HiddenMessageWindow.h" #include "native/juce_win32_ActiveXComponent.cpp" #if JUCE_WEB_BROWSER #include "native/juce_win32_WebBrowserComponent.cpp" diff --git a/modules/juce_opengl/juce_opengl.cpp b/modules/juce_opengl/juce_opengl.cpp index 7015b43265..1c8994fd47 100644 --- a/modules/juce_opengl/juce_opengl.cpp +++ b/modules/juce_opengl/juce_opengl.cpp @@ -31,7 +31,11 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 +#define JUCE_CORE_INCLUDE_JNI_HELPERS 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 +#define JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS 1 + #include "juce_opengl.h" //============================================================================== @@ -193,8 +197,6 @@ private: //============================================================================== #if JUCE_MAC || JUCE_IOS - #include "../juce_core/native/juce_osx_ObjCHelpers.h" - #include "../juce_graphics/native/juce_mac_CoreGraphicsHelpers.h" #if JUCE_MAC #include "native/juce_OpenGL_osx.h" @@ -209,7 +211,6 @@ private: #include "native/juce_OpenGL_linux.h" #elif JUCE_ANDROID - #include "../juce_core/native/juce_android_JNIHelpers.h" #include "native/juce_OpenGL_android.h" #endif diff --git a/modules/juce_video/juce_video.cpp b/modules/juce_video/juce_video.cpp index 45a44bef5a..2dcf036216 100644 --- a/modules/juce_video/juce_video.cpp +++ b/modules/juce_video/juce_video.cpp @@ -31,7 +31,10 @@ #error "Incorrect use of JUCE cpp file" #endif -#include "../juce_core/native/juce_BasicNativeHeaders.h" +#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1 +#define JUCE_CORE_INCLUDE_COM_SMART_PTR 1 +#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1 + #include "../juce_gui_extra/juce_gui_extra.h" #include "juce_video.h" @@ -98,8 +101,6 @@ namespace juce { #if JUCE_MAC || JUCE_IOS - #include "../juce_core/native/juce_osx_ObjCHelpers.h" - #if JUCE_USE_CAMERA #include "native/juce_mac_CameraDevice.mm" #endif @@ -109,7 +110,6 @@ namespace juce #endif #elif JUCE_WINDOWS - #include "../juce_core/native/juce_win32_ComSmartPtr.h" #if JUCE_USE_CAMERA #include "native/juce_win32_CameraDevice.cpp"