mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
macOS/iOS: Fix unguarded availability warnings
This commit is contained in:
parent
e984395b1d
commit
db3c6e6216
27 changed files with 220 additions and 177 deletions
|
|
@ -575,8 +575,8 @@
|
|||
LLVM_LTO = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.rmsl.jucedemorunner;
|
||||
PRODUCT_NAME = "DemoRunner";
|
||||
|
|
@ -667,8 +667,8 @@
|
|||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.rmsl.jucedemorunner;
|
||||
PRODUCT_NAME = "DemoRunner";
|
||||
|
|
|
|||
|
|
@ -578,8 +578,8 @@
|
|||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
LLVM_LTO = YES;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.rmsl.jucedemorunner;
|
||||
PRODUCT_NAME = "DemoRunner";
|
||||
|
|
@ -670,8 +670,8 @@
|
|||
INFOPLIST_PREPROCESS = NO;
|
||||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.rmsl.jucedemorunner;
|
||||
PRODUCT_NAME = "DemoRunner";
|
||||
|
|
|
|||
|
|
@ -500,8 +500,8 @@
|
|||
LLVM_LTO = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.pluginhost;
|
||||
PRODUCT_NAME = "AudioPluginHost";
|
||||
|
|
@ -640,8 +640,8 @@
|
|||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.pluginhost;
|
||||
PRODUCT_NAME = "AudioPluginHost";
|
||||
|
|
|
|||
|
|
@ -508,8 +508,8 @@
|
|||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
LLVM_LTO = YES;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.pluginhost;
|
||||
PRODUCT_NAME = "Plugin Host";
|
||||
|
|
@ -649,8 +649,8 @@
|
|||
INFOPLIST_PREPROCESS = NO;
|
||||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.pluginhost;
|
||||
PRODUCT_NAME = "Plugin Host";
|
||||
|
|
|
|||
|
|
@ -31,7 +31,9 @@ elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQU
|
|||
$<$<OR:$<COMPILE_LANGUAGE:CXX>,$<COMPILE_LANGUAGE:OBJCXX>>:
|
||||
-Wzero-as-null-pointer-constant -Wunused-private-field
|
||||
-Woverloaded-virtual -Wreorder
|
||||
-Winconsistent-missing-destructor-override>)
|
||||
-Winconsistent-missing-destructor-override>
|
||||
$<$<OR:$<COMPILE_LANGUAGE:OBJC>,$<COMPILE_LANGUAGE:OBJCXX>>:
|
||||
-Wunguarded-availability -Wunguarded-availability-new>)
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
target_compile_options(juce_recommended_warning_flags INTERFACE
|
||||
-Wall -Wextra -Wpedantic -Wstrict-aliasing -Wuninitialized
|
||||
|
|
|
|||
|
|
@ -1173,8 +1173,8 @@
|
|||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../Build $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer;
|
||||
PRODUCT_NAME = "Projucer";
|
||||
|
|
@ -1244,8 +1244,8 @@
|
|||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../Build $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer;
|
||||
PRODUCT_NAME = "Projucer";
|
||||
|
|
|
|||
|
|
@ -1599,6 +1599,7 @@ public:
|
|||
s.set ("GCC_FAST_MATH", "YES");
|
||||
|
||||
auto recommendedWarnings = config.getRecommendedCompilerWarningFlags();
|
||||
recommendedWarnings.common.addArray (recommendedWarnings.objc);
|
||||
recommendedWarnings.cpp.addArray (recommendedWarnings.common);
|
||||
|
||||
struct XcodeWarningFlags
|
||||
|
|
|
|||
|
|
@ -894,6 +894,9 @@ ProjectExporter::BuildConfiguration::BuildConfiguration (Project& p, const Value
|
|||
llvmFlags.cpp.addArray ({
|
||||
"-Wunused-private-field", "-Winconsistent-missing-destructor-override"
|
||||
});
|
||||
llvmFlags.objc.addArray ({
|
||||
"-Wunguarded-availability", "-Wunguarded-availability-new"
|
||||
});
|
||||
|
||||
auto& gccFlags = recommendedCompilerWarningFlags[CompilerNames::gcc] = BuildConfiguration::CompilerWarningFlags::getRecommendedForGCCAndLLVM();
|
||||
gccFlags.common.addArray ({
|
||||
|
|
|
|||
|
|
@ -289,8 +289,7 @@ public:
|
|||
return result;
|
||||
}
|
||||
|
||||
StringArray common;
|
||||
StringArray cpp;
|
||||
StringArray common, cpp, objc;
|
||||
};
|
||||
|
||||
CompilerWarningFlags getRecommendedCompilerWarningFlags() const;
|
||||
|
|
|
|||
|
|
@ -465,8 +465,8 @@
|
|||
LLVM_LTO = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.UnitTestRunner;
|
||||
PRODUCT_NAME = "UnitTestRunner";
|
||||
|
|
@ -598,8 +598,8 @@
|
|||
INSTALL_PATH = "/usr/bin";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||
MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/LV2_SDK $(SRCROOT)/../../../../modules/juce_audio_processors/format_types/VST3_SDK $(SRCROOT)/../../JuceLibraryCode $(SRCROOT)/../../../../modules";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes";
|
||||
OTHER_CFLAGS = "-Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_CPLUSPLUSFLAGS = "-Woverloaded-virtual -Wreorder -Wzero-as-null-pointer-constant -Wunused-private-field -Winconsistent-missing-destructor-override -Wall -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wswitch-enum -Wsign-conversion -Wsign-compare -Wunreachable-code -Wcast-align -Wno-ignored-qualifiers -Wshorten-64-to-32 -Wconversion -Wint-conversion -Wconditional-uninitialized -Wconstant-conversion -Wbool-conversion -Wextra-semi -Wshift-sign-overflow -Wshadow-all -Wnullable-to-nonnull-conversion -Wmissing-prototypes -Wunguarded-availability -Wunguarded-availability-new";
|
||||
OTHER_LDFLAGS = "-weak_framework Metal -weak_framework MetalKit";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.juce.UnitTestRunner;
|
||||
PRODUCT_NAME = "UnitTestRunner";
|
||||
|
|
|
|||
|
|
@ -82,10 +82,8 @@ namespace CoreMidiHelpers
|
|||
struct Sender;
|
||||
|
||||
#if JUCE_HAS_NEW_COREMIDI_API
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wunguarded-availability", "-Wunguarded-availability-new")
|
||||
|
||||
template <>
|
||||
struct Sender<ImplementationStrategy::onlyNew> : public SenderBase
|
||||
struct API_AVAILABLE (macos (11.0), ios (14.0)) Sender<ImplementationStrategy::onlyNew> : public SenderBase
|
||||
{
|
||||
explicit Sender (MIDIEndpointRef ep)
|
||||
: umpConverter (getProtocolForEndpoint (ep))
|
||||
|
|
@ -177,8 +175,6 @@ namespace CoreMidiHelpers
|
|||
send();
|
||||
}
|
||||
};
|
||||
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
#endif
|
||||
|
||||
#if JUCE_HAS_OLD_COREMIDI_API
|
||||
|
|
@ -829,10 +825,8 @@ namespace CoreMidiHelpers
|
|||
struct CreatorFunctions;
|
||||
|
||||
#if JUCE_HAS_NEW_COREMIDI_API
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wunguarded-availability", "-Wunguarded-availability-new")
|
||||
|
||||
template <>
|
||||
struct CreatorFunctions<ImplementationStrategy::onlyNew>
|
||||
struct API_AVAILABLE (macos (11.0), ios (14.0)) CreatorFunctions<ImplementationStrategy::onlyNew>
|
||||
{
|
||||
static OSStatus createInputPort (ump::PacketProtocol protocol,
|
||||
MIDIClientRef client,
|
||||
|
|
@ -894,8 +888,6 @@ namespace CoreMidiHelpers
|
|||
static_cast<MidiPortAndCallback*> (readProcRefCon)->handlePackets (*list);
|
||||
}
|
||||
};
|
||||
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
#endif
|
||||
|
||||
#if JUCE_HAS_OLD_COREMIDI_API
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@ namespace AudioUnitFormatHelpers
|
|||
NSBundle* bundle = [[NSBundle alloc] initWithPath: (NSString*) fileOrIdentifier.toCFString()];
|
||||
|
||||
NSArray* audioComponents = [bundle objectForInfoDictionaryKey: @"AudioComponents"];
|
||||
NSDictionary* dict = audioComponents[0];
|
||||
NSDictionary* dict = [audioComponents objectAtIndex: 0];
|
||||
|
||||
desc.componentManufacturer = stringToOSType (nsStringToJuce ((NSString*) [dict valueForKey: @"manufacturer"]));
|
||||
desc.componentType = stringToOSType (nsStringToJuce ((NSString*) [dict valueForKey: @"type"]));
|
||||
|
|
@ -416,6 +416,14 @@ namespace AudioUnitFormatHelpers
|
|||
*/
|
||||
std::vector<size_t> channels;
|
||||
};
|
||||
|
||||
static bool isPluginAUv3 (const AudioComponentDescription& desc)
|
||||
{
|
||||
if (@available (macOS 10.11, *))
|
||||
return (desc.componentFlags & kAudioComponentFlag_IsV3AudioUnit) != 0;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -636,7 +644,7 @@ public:
|
|||
|
||||
AudioComponentGetDescription (auComponent, &componentDesc);
|
||||
|
||||
isAUv3 = ((componentDesc.componentFlags & kAudioComponentFlag_IsV3AudioUnit) != 0);
|
||||
isAUv3 = AudioUnitFormatHelpers::isPluginAUv3 (componentDesc);
|
||||
|
||||
wantsMidiMessages = componentDesc.componentType == kAudioUnitType_MusicDevice
|
||||
|| componentDesc.componentType == kAudioUnitType_MusicEffect
|
||||
|
|
@ -2545,7 +2553,10 @@ private:
|
|||
{
|
||||
const auto viewSize = [&controller]
|
||||
{
|
||||
auto size = [controller preferredContentSize];
|
||||
auto size = CGSizeZero;
|
||||
|
||||
if (@available (macOS 10.11, *))
|
||||
size = [controller preferredContentSize];
|
||||
|
||||
if (size.width == 0 || size.height == 0)
|
||||
size = controller.view.frame.size;
|
||||
|
|
@ -2854,12 +2865,15 @@ void AudioUnitPluginFormat::createPluginInstance (const PluginDescription& desc,
|
|||
|
||||
auto callbackBlock = new AUAsyncInitializationCallback (rate, blockSize, std::move (callback));
|
||||
|
||||
if ((componentDesc.componentFlags & kAudioComponentFlag_IsV3AudioUnit) != 0)
|
||||
if (AudioUnitFormatHelpers::isPluginAUv3 (componentDesc))
|
||||
{
|
||||
AudioComponentInstantiate (auComponent, kAudioComponentInstantiation_LoadOutOfProcess,
|
||||
callbackBlock->getBlock());
|
||||
if (@available (macOS 10.11, *))
|
||||
{
|
||||
AudioComponentInstantiate (auComponent, kAudioComponentInstantiation_LoadOutOfProcess,
|
||||
callbackBlock->getBlock());
|
||||
|
||||
return;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
AudioComponentInstance audioUnit;
|
||||
|
|
@ -2883,8 +2897,10 @@ bool AudioUnitPluginFormat::requiresUnblockedMessageThreadDuringCreation (const
|
|||
pluginName, version, manufacturer))
|
||||
{
|
||||
if (AudioComponent auComp = AudioComponentFindNext (nullptr, &componentDesc))
|
||||
{
|
||||
if (AudioComponentGetDescription (auComp, &componentDesc) == noErr)
|
||||
return ((componentDesc.componentFlags & kAudioComponentFlag_IsV3AudioUnit) != 0);
|
||||
return AudioUnitFormatHelpers::isPluginAUv3 (componentDesc);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -2916,11 +2932,7 @@ StringArray AudioUnitPluginFormat::searchPathsForPlugins (const FileSearchPath&,
|
|||
|| desc.componentType == kAudioUnitType_Mixer
|
||||
|| desc.componentType == kAudioUnitType_MIDIProcessor)
|
||||
{
|
||||
ignoreUnused (allowPluginsWhichRequireAsynchronousInstantiation);
|
||||
|
||||
const auto isAUv3 = ((desc.componentFlags & kAudioComponentFlag_IsV3AudioUnit) != 0);
|
||||
|
||||
if (allowPluginsWhichRequireAsynchronousInstantiation || ! isAUv3)
|
||||
if (allowPluginsWhichRequireAsynchronousInstantiation || ! AudioUnitFormatHelpers::isPluginAUv3 (desc))
|
||||
result.add (AudioUnitFormatHelpers::createPluginIdentifier (desc));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace juce
|
|||
{
|
||||
|
||||
//==============================================================================
|
||||
class BluetoothMidiPairingWindowClass : public ObjCClass<NSObject>
|
||||
class API_AVAILABLE (macos (10.11)) BluetoothMidiPairingWindowClass : public ObjCClass<NSObject>
|
||||
{
|
||||
public:
|
||||
struct Callbacks
|
||||
|
|
@ -110,7 +110,7 @@ private:
|
|||
}
|
||||
};
|
||||
|
||||
class BluetoothMidiSelectorWindowHelper : public DeletedAtShutdown
|
||||
class API_AVAILABLE (macos (10.11)) BluetoothMidiSelectorWindowHelper : public DeletedAtShutdown
|
||||
{
|
||||
public:
|
||||
BluetoothMidiSelectorWindowHelper (ModalComponentManager::Callback* exitCallback,
|
||||
|
|
|
|||
|
|
@ -528,8 +528,9 @@ void File::addToDock() const
|
|||
|
||||
File File::getContainerForSecurityApplicationGroupIdentifier (const String& appGroup)
|
||||
{
|
||||
if (auto* url = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier: juceStringToNS (appGroup)])
|
||||
return File (nsStringToJuce ([url path]));
|
||||
if (@available (macOS 10.8, *))
|
||||
if (auto* url = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier: juceStringToNS (appGroup)])
|
||||
return File (nsStringToJuce ([url path]));
|
||||
|
||||
return File();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -393,7 +393,7 @@ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
|||
#endif
|
||||
|
||||
//==============================================================================
|
||||
class URLConnectionState : public URLConnectionStateBase
|
||||
class API_AVAILABLE (macos (10.9)) URLConnectionState : public URLConnectionStateBase
|
||||
{
|
||||
public:
|
||||
URLConnectionState (NSURLRequest* req, const int maxRedirects)
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ inline var nsDictionaryToVar (NSDictionary* dictionary)
|
|||
DynamicObject::Ptr dynamicObject (new DynamicObject());
|
||||
|
||||
for (NSString* key in dictionary)
|
||||
dynamicObject->setProperty (nsStringToJuce (key), nsObjectToVar (dictionary[key]));
|
||||
dynamicObject->setProperty (nsStringToJuce (key), nsObjectToVar ([dictionary objectForKey: key]));
|
||||
|
||||
return var (dynamicObject.get());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,12 +28,21 @@ namespace juce
|
|||
class ScopedLowPowerModeDisabler::Pimpl
|
||||
{
|
||||
public:
|
||||
Pimpl() = default;
|
||||
~Pimpl() { [[NSProcessInfo processInfo] endActivity: activity]; }
|
||||
Pimpl()
|
||||
{
|
||||
if (@available (macOS 10.9, *))
|
||||
activity = [[NSProcessInfo processInfo] beginActivityWithOptions: NSActivityUserInitiatedAllowingIdleSystemSleep
|
||||
reason: @"App must remain in high-power mode"];
|
||||
}
|
||||
|
||||
~Pimpl()
|
||||
{
|
||||
if (@available (macOS 10.9, *))
|
||||
[[NSProcessInfo processInfo] endActivity: activity];
|
||||
}
|
||||
|
||||
private:
|
||||
id activity { [[NSProcessInfo processInfo] beginActivityWithOptions: NSActivityUserInitiatedAllowingIdleSystemSleep
|
||||
reason: @"App must remain in high-power mode"] };
|
||||
id activity;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE (Pimpl)
|
||||
JUCE_DECLARE_NON_MOVEABLE (Pimpl)
|
||||
|
|
|
|||
|
|
@ -34,31 +34,6 @@ namespace juce
|
|||
#define JUCE_IOS_CONTAINER_API_AVAILABLE 1
|
||||
#endif
|
||||
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wunguarded-availability", "-Wunguarded-availability-new")
|
||||
|
||||
constexpr auto juceUIAccessibilityContainerTypeNone =
|
||||
#if JUCE_IOS_CONTAINER_API_AVAILABLE
|
||||
UIAccessibilityContainerTypeNone;
|
||||
#else
|
||||
0;
|
||||
#endif
|
||||
|
||||
constexpr auto juceUIAccessibilityContainerTypeDataTable =
|
||||
#if JUCE_IOS_CONTAINER_API_AVAILABLE
|
||||
UIAccessibilityContainerTypeDataTable;
|
||||
#else
|
||||
1;
|
||||
#endif
|
||||
|
||||
constexpr auto juceUIAccessibilityContainerTypeList =
|
||||
#if JUCE_IOS_CONTAINER_API_AVAILABLE
|
||||
UIAccessibilityContainerTypeList;
|
||||
#else
|
||||
2;
|
||||
#endif
|
||||
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
|
||||
#define JUCE_NATIVE_ACCESSIBILITY_INCLUDED 1
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -157,7 +132,12 @@ private:
|
|||
if (auto* handler = getHandler (self))
|
||||
{
|
||||
if (handler->getTableInterface() != nullptr)
|
||||
return juceUIAccessibilityContainerTypeDataTable;
|
||||
{
|
||||
if (@available (iOS 11.0, *))
|
||||
return UIAccessibilityContainerTypeDataTable;
|
||||
|
||||
return 1; // UIAccessibilityContainerTypeDataTable
|
||||
}
|
||||
|
||||
const auto role = handler->getRole();
|
||||
|
||||
|
|
@ -165,11 +145,17 @@ private:
|
|||
|| role == AccessibilityRole::list
|
||||
|| role == AccessibilityRole::tree)
|
||||
{
|
||||
return juceUIAccessibilityContainerTypeList;
|
||||
if (@available (iOS 11.0, *))
|
||||
return UIAccessibilityContainerTypeList;
|
||||
|
||||
return 2; // UIAccessibilityContainerTypeList
|
||||
}
|
||||
}
|
||||
|
||||
return juceUIAccessibilityContainerTypeNone;
|
||||
if (@available (iOS 11.0, *))
|
||||
return UIAccessibilityContainerTypeNone;
|
||||
|
||||
return 0; // UIAccessibilityContainerTypeNone
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
==============================================================================
|
||||
*/
|
||||
|
||||
API_AVAILABLE (macos (10.10))
|
||||
static void juceFreeAccessibilityPlatformSpecificData (NSAccessibilityElement<NSAccessibility>*) {}
|
||||
|
||||
namespace juce
|
||||
|
|
@ -28,16 +29,17 @@ namespace juce
|
|||
|
||||
#define JUCE_NATIVE_ACCESSIBILITY_INCLUDED 1
|
||||
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wunguarded-availability", "-Wunguarded-availability-new")
|
||||
|
||||
//==============================================================================
|
||||
class AccessibilityHandler::AccessibilityNativeImpl
|
||||
{
|
||||
public:
|
||||
explicit AccessibilityNativeImpl (AccessibilityHandler& handler)
|
||||
: accessibilityElement (AccessibilityElement::create (handler))
|
||||
{}
|
||||
{
|
||||
if (@available (macOS 10.10, *))
|
||||
accessibilityElement = AccessibilityElement::create (handler);
|
||||
}
|
||||
|
||||
API_AVAILABLE (macos (10.10))
|
||||
NSAccessibilityElement<NSAccessibility>* getAccessibilityElement() const noexcept
|
||||
{
|
||||
return accessibilityElement.get();
|
||||
|
|
@ -45,7 +47,7 @@ public:
|
|||
|
||||
private:
|
||||
//==============================================================================
|
||||
class AccessibilityElement : public AccessibleObjCClass<NSAccessibilityElement<NSAccessibility>>
|
||||
class API_AVAILABLE (macos (10.10)) AccessibilityElement : public AccessibleObjCClass<NSAccessibilityElement<NSAccessibility>>
|
||||
{
|
||||
public:
|
||||
static Holder create (AccessibilityHandler& handler)
|
||||
|
|
@ -823,6 +825,7 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
API_AVAILABLE (macos (10.10))
|
||||
AccessibilityElement::Holder accessibilityElement;
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -832,7 +835,10 @@ private:
|
|||
//==============================================================================
|
||||
AccessibilityNativeHandle* AccessibilityHandler::getNativeImplementation() const
|
||||
{
|
||||
return (AccessibilityNativeHandle*) nativeImpl->getAccessibilityElement();
|
||||
if (@available (macOS 10.10, *))
|
||||
return (AccessibilityNativeHandle*) nativeImpl->getAccessibilityElement();
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
static bool areAnyAccessibilityClientsActive()
|
||||
|
|
@ -866,12 +872,15 @@ static void sendHandlerNotification (const AccessibilityHandler& handler,
|
|||
if (! areAnyAccessibilityClientsActive() || notification == NSAccessibilityNotificationName{})
|
||||
return;
|
||||
|
||||
if (id accessibilityElement = (id) handler.getNativeImplementation())
|
||||
if (@available (macOS 10.9, *))
|
||||
{
|
||||
sendAccessibilityEvent (accessibilityElement, notification,
|
||||
(notification == NSAccessibilityLayoutChangedNotification
|
||||
? @{ NSAccessibilityUIElementsKey: @[ accessibilityElement ] }
|
||||
: nil));
|
||||
if (id accessibilityElement = (id) handler.getNativeImplementation())
|
||||
{
|
||||
sendAccessibilityEvent (accessibilityElement, notification,
|
||||
(notification == NSAccessibilityLayoutChangedNotification
|
||||
? @{ NSAccessibilityUIElementsKey: @[ accessibilityElement ] }
|
||||
: nil));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -930,10 +939,13 @@ void AccessibilityHandler::postAnnouncement (const String& announcementString, A
|
|||
if (! areAnyAccessibilityClientsActive())
|
||||
return;
|
||||
|
||||
if (@available (macOS 10.10, *))
|
||||
{
|
||||
if (@available (macOS 10.9, *))
|
||||
{
|
||||
auto nsPriority = [priority]
|
||||
{
|
||||
// The below doesn't get noticed by the @available check above
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wunguarded-availability")
|
||||
|
||||
switch (priority)
|
||||
{
|
||||
case AnnouncementPriority::low: return NSAccessibilityPriorityLow;
|
||||
|
|
@ -943,6 +955,8 @@ void AccessibilityHandler::postAnnouncement (const String& announcementString, A
|
|||
|
||||
jassertfalse;
|
||||
return NSAccessibilityPriorityLow;
|
||||
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
}();
|
||||
|
||||
sendAccessibilityEvent ((id) [NSApp mainWindow],
|
||||
|
|
@ -952,6 +966,4 @@ void AccessibilityHandler::postAnnouncement (const String& announcementString, A
|
|||
}
|
||||
}
|
||||
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
|
||||
} // namespace juce
|
||||
|
|
|
|||
|
|
@ -105,10 +105,13 @@ public:
|
|||
preview->addToDesktop (0, (void*) nsViewPreview);
|
||||
preview->setVisible (true);
|
||||
|
||||
if (! isSave)
|
||||
if (@available (macOS 10.11, *))
|
||||
{
|
||||
auto* openPanel = static_cast<NSOpenPanel*> (panel);
|
||||
[openPanel setAccessoryViewDisclosed: YES];
|
||||
if (! isSave)
|
||||
{
|
||||
auto* openPanel = static_cast<NSOpenPanel*> (panel);
|
||||
[openPanel setAccessoryViewDisclosed: YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1848,10 +1848,13 @@ private:
|
|||
|
||||
void setFullScreenSizeConstraints (const ComponentBoundsConstrainer& c)
|
||||
{
|
||||
const auto minSize = NSMakeSize (static_cast<float> (c.getMinimumWidth()),
|
||||
0.0f);
|
||||
[window setMinFullScreenContentSize: minSize];
|
||||
[window setMaxFullScreenContentSize: NSMakeSize (100000, 100000)];
|
||||
if (@available (macOS 10.11, *))
|
||||
{
|
||||
const auto minSize = NSMakeSize (static_cast<float> (c.getMinimumWidth()),
|
||||
0.0f);
|
||||
[window setMinFullScreenContentSize: minSize];
|
||||
[window setMaxFullScreenContentSize: NSMakeSize (100000, 100000)];
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
namespace juce
|
||||
{
|
||||
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wunguarded-availability", "-Wunguarded-availability-new", "-Wdeprecated-declarations")
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations")
|
||||
|
||||
extern NSMenu* createNSMenu (const PopupMenu&, const String& name, int topLevelMenuId,
|
||||
int topLevelIndex, bool addDelegate);
|
||||
|
|
@ -80,7 +80,7 @@ struct StatusItemContainer : public Timer
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
struct ButtonBasedStatusItem : public StatusItemContainer
|
||||
struct API_AVAILABLE (macos (10.10)) ButtonBasedStatusItem : public StatusItemContainer
|
||||
{
|
||||
//==============================================================================
|
||||
ButtonBasedStatusItem (SystemTrayIconComponent& iconComp, const Image& im)
|
||||
|
|
@ -377,7 +377,7 @@ public:
|
|||
//==============================================================================
|
||||
Pimpl (SystemTrayIconComponent& iconComp, const Image& im)
|
||||
{
|
||||
if (std::floor (NSFoundationVersionNumber) > NSFoundationVersionNumber10_10)
|
||||
if (@available (macOS 10.10, *))
|
||||
statusItemHolder = std::make_unique<ButtonBasedStatusItem> (iconComp, im);
|
||||
else
|
||||
statusItemHolder = std::make_unique<ViewBasedStatusItem> (iconComp, im);
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ namespace juce
|
|||
|
||||
static NSURL* appendParametersToFileURL (const URL& url, NSURL* fileUrl)
|
||||
{
|
||||
if (@available (macOS 10.9, *))
|
||||
if (@available (macOS 10.10, *))
|
||||
{
|
||||
const auto parameterNames = url.getParameterNames();
|
||||
const auto parameterValues = url.getParameterValues();
|
||||
|
|
@ -256,7 +256,7 @@ private:
|
|||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
#endif
|
||||
|
||||
struct WebViewDelegateClass : public ObjCClass<NSObject>
|
||||
struct API_AVAILABLE (macos (10.10)) WebViewDelegateClass : public ObjCClass<NSObject>
|
||||
{
|
||||
WebViewDelegateClass() : ObjCClass<NSObject> ("JUCEWebViewDelegate_")
|
||||
{
|
||||
|
|
@ -332,7 +332,7 @@ private:
|
|||
}
|
||||
|
||||
#if WKWEBVIEW_OPENPANEL_SUPPORTED
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wunguarded-availability", "-Wunguarded-availability-new")
|
||||
API_AVAILABLE (macos (10.12))
|
||||
static void runOpenPanel (id, SEL, WKWebView*, WKOpenPanelParameters* parameters, WKFrameInfo*,
|
||||
void (^completionHandler)(NSArray<NSURL*>*))
|
||||
{
|
||||
|
|
@ -395,7 +395,6 @@ private:
|
|||
delete wrapper;
|
||||
});
|
||||
}
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
@ -500,7 +499,7 @@ private:
|
|||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
#endif
|
||||
|
||||
class WKWebViewImpl : public WebViewBase
|
||||
class API_AVAILABLE (macos (10.11)) WKWebViewImpl : public WebViewBase
|
||||
{
|
||||
public:
|
||||
WKWebViewImpl (WebBrowserComponent* owner)
|
||||
|
|
@ -580,7 +579,7 @@ class WebBrowserComponent::Pimpl
|
|||
public:
|
||||
Pimpl (WebBrowserComponent* owner)
|
||||
{
|
||||
if (@available (macOS 10.10, *))
|
||||
if (@available (macOS 10.11, *))
|
||||
webView = std::make_unique<WKWebViewImpl> (owner);
|
||||
#if JUCE_MAC
|
||||
else
|
||||
|
|
|
|||
|
|
@ -24,11 +24,7 @@ namespace juce
|
|||
#elif JUCE_WINDOWS
|
||||
#include "../native/juce_win32_CameraDevice.h"
|
||||
#elif JUCE_IOS
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wunguarded-availability", "-Wunguarded-availability-new")
|
||||
|
||||
#include "../native/juce_ios_CameraDevice.h"
|
||||
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
#elif JUCE_ANDROID
|
||||
#include "../native/juce_android_CameraDevice.h"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -759,7 +759,7 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
#if JUCE_USE_NEW_CAMERA_API
|
||||
class PhotoOutputDelegateClass : public ObjCClass<NSObject>
|
||||
class API_AVAILABLE (ios (10.0)) PhotoOutputDelegateClass : public ObjCClass<NSObject>
|
||||
{
|
||||
public:
|
||||
PhotoOutputDelegateClass() : ObjCClass<NSObject> ("PhotoOutputDelegateClass_")
|
||||
|
|
@ -813,6 +813,7 @@ private:
|
|||
JUCE_CAMERA_LOG ("didFinishCaptureForSettings(), error = " + errorString);
|
||||
}
|
||||
|
||||
API_AVAILABLE (ios (11.0))
|
||||
static void didFinishProcessingPhoto (id self, SEL, AVCapturePhotoOutput*, AVCapturePhoto* capturePhoto, NSError* error)
|
||||
{
|
||||
getOwner (self).takingPicture = false;
|
||||
|
|
|
|||
|
|
@ -219,7 +219,7 @@ private:
|
|||
{
|
||||
JUCE_CAMERA_LOG (nsStringToJuce ([notification description]));
|
||||
|
||||
NSError* error = notification.userInfo[AVCaptureSessionErrorKey];
|
||||
NSError* error = [notification.userInfo objectForKey: AVCaptureSessionErrorKey];
|
||||
auto errorString = error != nil ? nsStringToJuce (error.localizedDescription) : String();
|
||||
getOwner (self).cameraSessionRuntimeError (errorString);
|
||||
}
|
||||
|
|
@ -237,8 +237,7 @@ private:
|
|||
};
|
||||
|
||||
#if JUCE_USE_NEW_CAMERA_API
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wunguarded-availability", "-Wunguarded-availability-new")
|
||||
class PostCatalinaPhotoOutput : public ImageOutputBase
|
||||
class API_AVAILABLE (macos (10.15)) PostCatalinaPhotoOutput : public ImageOutputBase
|
||||
{
|
||||
public:
|
||||
PostCatalinaPhotoOutput()
|
||||
|
|
@ -322,7 +321,6 @@ private:
|
|||
AVCapturePhotoOutput* imageOutput = nil;
|
||||
std::unique_ptr<NSObject, NSObjectDeleter> delegate;
|
||||
};
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
#endif
|
||||
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations")
|
||||
|
|
|
|||
|
|
@ -188,8 +188,15 @@ private:
|
|||
public:
|
||||
~PlayerControllerBase()
|
||||
{
|
||||
detachPlayerStatusObserver();
|
||||
detachPlaybackObserver();
|
||||
// Derived classes must call detachPlayerStatusObserver() before destruction!
|
||||
jassert (! playerStatusObserverAttached);
|
||||
|
||||
// Derived classes must call detachPlaybackObserver() before destruction!
|
||||
jassert (! playbackObserverAttached);
|
||||
|
||||
// Note that it's unsafe to call detachPlayerStatusObserver and detachPlaybackObserver
|
||||
// directly here, because those functions call into the derived class, which will have
|
||||
// been destroyed at this point.
|
||||
}
|
||||
|
||||
protected:
|
||||
|
|
@ -219,8 +226,8 @@ private:
|
|||
|
||||
if ([keyPath isEqualToString: nsStringLiteral ("rate")])
|
||||
{
|
||||
auto oldRate = [change[NSKeyValueChangeOldKey] floatValue];
|
||||
auto newRate = [change[NSKeyValueChangeNewKey] floatValue];
|
||||
auto oldRate = [[change objectForKey: NSKeyValueChangeOldKey] floatValue];
|
||||
auto newRate = [[change objectForKey: NSKeyValueChangeNewKey] floatValue];
|
||||
|
||||
if (oldRate == 0 && newRate != 0)
|
||||
owner.playbackStarted();
|
||||
|
|
@ -229,7 +236,7 @@ private:
|
|||
}
|
||||
else if ([keyPath isEqualToString: nsStringLiteral ("status")])
|
||||
{
|
||||
auto status = [change[NSKeyValueChangeNewKey] intValue];
|
||||
auto status = [[change objectForKey: NSKeyValueChangeNewKey] intValue];
|
||||
|
||||
if (status == AVPlayerStatusFailed)
|
||||
owner.errorOccurred();
|
||||
|
|
@ -322,8 +329,8 @@ private:
|
|||
auto* urlAsset = (AVURLAsset*) playerItem.asset;
|
||||
|
||||
URL url (nsStringToJuce (urlAsset.URL.absoluteString));
|
||||
auto oldStatus = [change[NSKeyValueChangeOldKey] intValue];
|
||||
auto newStatus = [change[NSKeyValueChangeNewKey] intValue];
|
||||
auto oldStatus = [[change objectForKey: NSKeyValueChangeOldKey] intValue];
|
||||
auto newStatus = [[change objectForKey: NSKeyValueChangeNewKey] intValue];
|
||||
|
||||
// Ignore spurious notifications
|
||||
if (oldStatus == newStatus)
|
||||
|
|
@ -474,6 +481,8 @@ private:
|
|||
forKeyPath: nsStringLiteral ("status")
|
||||
options: NSKeyValueObservingOptionNew
|
||||
context: this];
|
||||
|
||||
playerStatusObserverAttached = true;
|
||||
}
|
||||
|
||||
void detachPlayerStatusObserver()
|
||||
|
|
@ -488,6 +497,8 @@ private:
|
|||
forKeyPath: nsStringLiteral ("status")
|
||||
context: this];
|
||||
}
|
||||
|
||||
playerStatusObserverAttached = false;
|
||||
}
|
||||
|
||||
void attachPlaybackObserver()
|
||||
|
|
@ -498,6 +509,8 @@ private:
|
|||
name: AVPlayerItemDidPlayToEndTimeNotification
|
||||
object: [crtp().getPlayer() currentItem]];
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
|
||||
playbackObserverAttached = true;
|
||||
}
|
||||
|
||||
void detachPlaybackObserver()
|
||||
|
|
@ -505,6 +518,8 @@ private:
|
|||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wundeclared-selector")
|
||||
[[NSNotificationCenter defaultCenter] removeObserver: playerItemPlaybackStatusObserver.get()];
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
|
||||
playbackObserverAttached = false;
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
@ -549,6 +564,8 @@ private:
|
|||
owner.playbackStopped();
|
||||
}
|
||||
|
||||
bool playerStatusObserverAttached = false, playbackObserverAttached = false;
|
||||
|
||||
JUCE_DECLARE_WEAK_REFERENCEABLE (PlayerControllerBase)
|
||||
};
|
||||
|
||||
|
|
@ -565,38 +582,21 @@ private:
|
|||
useNativeControls = false;
|
||||
#endif
|
||||
|
||||
if (useNativeControls)
|
||||
wrappedPlayer = [&]() -> std::unique_ptr<WrappedPlayer>
|
||||
{
|
||||
#if ! JUCE_32BIT
|
||||
playerView = [[AVPlayerView alloc] init];
|
||||
if (@available (macOS 10.9, *))
|
||||
if (useNativeControls)
|
||||
return std::make_unique<WrappedPlayerView>();
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
view = [[NSView alloc] init];
|
||||
playerLayer = [[AVPlayerLayer alloc] init];
|
||||
[view setLayer: playerLayer];
|
||||
}
|
||||
}
|
||||
|
||||
~PlayerController()
|
||||
{
|
||||
#if JUCE_32BIT
|
||||
[view release];
|
||||
[playerLayer release];
|
||||
#else
|
||||
[playerView release];
|
||||
#endif
|
||||
return std::make_unique<WrappedPlayerLayer> ();
|
||||
}();
|
||||
}
|
||||
|
||||
NSView* getView()
|
||||
{
|
||||
#if ! JUCE_32BIT
|
||||
if (useNativeControls)
|
||||
return playerView;
|
||||
#endif
|
||||
|
||||
return view;
|
||||
return wrappedPlayer->getView();
|
||||
}
|
||||
|
||||
Result load (NSURL* url)
|
||||
|
|
@ -622,12 +622,7 @@ private:
|
|||
detachPlayerStatusObserver();
|
||||
detachPlaybackObserver();
|
||||
|
||||
#if ! JUCE_32BIT
|
||||
if (useNativeControls)
|
||||
[playerView setPlayer: player];
|
||||
else
|
||||
#endif
|
||||
[playerLayer setPlayer: player];
|
||||
wrappedPlayer->setPlayer (player);
|
||||
|
||||
if (player != nil)
|
||||
{
|
||||
|
|
@ -638,21 +633,46 @@ private:
|
|||
|
||||
AVPlayer* getPlayer() const
|
||||
{
|
||||
#if ! JUCE_32BIT
|
||||
if (useNativeControls)
|
||||
return [playerView player];
|
||||
#endif
|
||||
|
||||
return [playerLayer player];
|
||||
return wrappedPlayer->getPlayer();
|
||||
}
|
||||
|
||||
private:
|
||||
NSView* view = nil;
|
||||
AVPlayerLayer* playerLayer = nil;
|
||||
struct WrappedPlayer
|
||||
{
|
||||
virtual ~WrappedPlayer() = default;
|
||||
virtual NSView* getView() const = 0;
|
||||
virtual AVPlayer* getPlayer() const = 0;
|
||||
virtual void setPlayer (AVPlayer*) = 0;
|
||||
};
|
||||
|
||||
class WrappedPlayerLayer : public WrappedPlayer
|
||||
{
|
||||
public:
|
||||
WrappedPlayerLayer () { [view.get() setLayer: playerLayer.get()]; }
|
||||
NSView* getView() const override { return view.get(); }
|
||||
AVPlayer* getPlayer() const override { return [playerLayer.get() player]; }
|
||||
void setPlayer (AVPlayer* player) override { [playerLayer.get() setPlayer: player]; }
|
||||
|
||||
private:
|
||||
NSUniquePtr<NSView> view { [[NSView alloc] init] };
|
||||
NSUniquePtr<AVPlayerLayer> playerLayer { [[AVPlayerLayer alloc] init] };
|
||||
};
|
||||
|
||||
#if ! JUCE_32BIT
|
||||
// 32-bit builds don't have AVPlayerView
|
||||
AVPlayerView* playerView = nil;
|
||||
class API_AVAILABLE (macos (10.9)) WrappedPlayerView : public WrappedPlayer
|
||||
{
|
||||
public:
|
||||
WrappedPlayerView() = default;
|
||||
NSView* getView() const override { return playerView.get(); }
|
||||
AVPlayer* getPlayer() const override { return [playerView.get() player]; }
|
||||
void setPlayer (AVPlayer* player) override { [playerView.get() setPlayer: player]; }
|
||||
|
||||
private:
|
||||
NSUniquePtr<AVPlayerView> playerView { [[AVPlayerView alloc] init] };
|
||||
};
|
||||
#endif
|
||||
|
||||
std::unique_ptr<WrappedPlayer> wrappedPlayer;
|
||||
};
|
||||
#else
|
||||
//==============================================================================
|
||||
|
|
@ -709,13 +729,19 @@ private:
|
|||
|
||||
void setPlayer (AVPlayer* playerToUse)
|
||||
{
|
||||
detachPlayerStatusObserver();
|
||||
detachPlaybackObserver();
|
||||
|
||||
if (useNativeControls)
|
||||
[playerViewController.get() setPlayer: playerToUse];
|
||||
else
|
||||
[playerLayer.get() setPlayer: playerToUse];
|
||||
|
||||
attachPlayerStatusObserver();
|
||||
attachPlaybackObserver();
|
||||
if (playerToUse != nil)
|
||||
{
|
||||
attachPlayerStatusObserver();
|
||||
attachPlaybackObserver();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue