diff --git a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj index bddc8e4119..bcc9790d3f 100644 --- a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj +++ b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj @@ -784,7 +784,7 @@ INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.11; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; - OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wstrict-aliasing -Wconversion -Wsign-compare -Woverloaded-virtual -Wextra-semi"; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -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 -Wno-ignored-qualifiers -Wunreachable-code"; PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer; SDKROOT_ppc = macosx10.5; USE_HEADERMAP = NO; }; name = Debug; }; @@ -819,7 +819,7 @@ LLVM_LTO = YES; MACOSX_DEPLOYMENT_TARGET = 10.11; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; - OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wstrict-aliasing -Wconversion -Wsign-compare -Woverloaded-virtual -Wextra-semi"; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -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 -Wno-ignored-qualifiers -Wunreachable-code"; PRODUCT_BUNDLE_IDENTIFIER = com.juce.theprojucer; SDKROOT_ppc = macosx10.5; USE_HEADERMAP = NO; }; name = Release; }; diff --git a/extras/Projucer/Projucer.jucer b/extras/Projucer/Projucer.jucer index cfaddb4836..d158be9b1d 100644 --- a/extras/Projucer/Projucer.jucer +++ b/extras/Projucer/Projucer.jucer @@ -8,7 +8,7 @@ diff --git a/extras/Projucer/Source/ComponentEditor/Documents/jucer_ButtonDocument.cpp b/extras/Projucer/Source/ComponentEditor/Documents/jucer_ButtonDocument.cpp index f804572e46..955e8c5525 100644 --- a/extras/Projucer/Source/ComponentEditor/Documents/jucer_ButtonDocument.cpp +++ b/extras/Projucer/Source/ComponentEditor/Documents/jucer_ButtonDocument.cpp @@ -71,7 +71,7 @@ static const char* const stateNames[] = "common background" }; -int stateNameToIndex (const String& name) +static int stateNameToIndex (const String& name) { for (int i = 7; --i >= 0;) if (name.equalsIgnoreCase (stateNames[i])) diff --git a/extras/Projucer/Source/ComponentEditor/UI/jucer_JucerDocumentEditor.cpp b/extras/Projucer/Source/ComponentEditor/UI/jucer_JucerDocumentEditor.cpp index e6e28aaad2..b0aefe3dc2 100644 --- a/extras/Projucer/Source/ComponentEditor/UI/jucer_JucerDocumentEditor.cpp +++ b/extras/Projucer/Source/ComponentEditor/UI/jucer_JucerDocumentEditor.cpp @@ -1229,9 +1229,10 @@ Image JucerDocumentEditor::createComponentLayerSnapshot() const const int gridSnapMenuItemBase = 0x8723620; const int snapSizes[] = { 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32 }; +void createGUIEditorMenu (PopupMenu&); void createGUIEditorMenu (PopupMenu& menu) { - ApplicationCommandManager* commandManager = &ProjucerApplication::getCommandManager(); + auto* commandManager = &ProjucerApplication::getCommandManager(); menu.addCommandItem (commandManager, JucerCommandIDs::editCompLayout); menu.addCommandItem (commandManager, JucerCommandIDs::editCompGraphics); @@ -1269,12 +1270,12 @@ void createGUIEditorMenu (PopupMenu& menu) menu.addCommandItem (commandManager, JucerCommandIDs::showGrid); menu.addCommandItem (commandManager, JucerCommandIDs::enableSnapToGrid); - JucerDocumentEditor* holder = JucerDocumentEditor::getActiveDocumentHolder(); + auto* holder = JucerDocumentEditor::getActiveDocumentHolder(); { - const int currentSnapSize = holder != nullptr ? holder->getDocument()->getSnappingGridSize() : -1; - + auto currentSnapSize = holder != nullptr ? holder->getDocument()->getSnappingGridSize() : -1; PopupMenu m; + for (int i = 0; i < numElementsInArray (snapSizes); ++i) m.addItem (gridSnapMenuItemBase + i, String (snapSizes[i]) + " pixels", true, snapSizes[i] == currentSnapSize); @@ -1303,6 +1304,7 @@ void createGUIEditorMenu (PopupMenu& menu) } } +void handleGUIEditorMenuCommand (int); void handleGUIEditorMenuCommand (int menuItemID) { if (auto* ed = JucerDocumentEditor::getActiveDocumentHolder()) @@ -1320,6 +1322,7 @@ void handleGUIEditorMenuCommand (int menuItemID) } } +void registerGUIEditorCommands(); void registerGUIEditorCommands() { JucerDocumentEditor dh (nullptr); diff --git a/extras/Projucer/Source/ComponentEditor/jucer_JucerDocument.cpp b/extras/Projucer/Source/ComponentEditor/jucer_JucerDocument.cpp index 9bb9b69aa2..7910a38b7a 100644 --- a/extras/Projucer/Source/ComponentEditor/jucer_JucerDocument.cpp +++ b/extras/Projucer/Source/ComponentEditor/jucer_JucerDocument.cpp @@ -735,27 +735,27 @@ public: }; }; +OpenDocumentManager::DocumentType* createGUIDocumentType(); OpenDocumentManager::DocumentType* createGUIDocumentType() { return new JucerComponentDocument::Type(); } //============================================================================== -class NewGUIComponentWizard : public NewFileWizard::Type +struct NewGUIComponentWizard : public NewFileWizard::Type { -public: NewGUIComponentWizard() {} String getName() override { return "GUI Component"; } void createNewFile (Project& project, Project::Item parent) override { - const File newFile (askUserToChooseNewFile (String (defaultClassName) + ".h", "*.h;*.cpp", parent)); + auto newFile = askUserToChooseNewFile (String (defaultClassName) + ".h", "*.h;*.cpp", parent); if (newFile != File()) { - const File headerFile (newFile.withFileExtension (".h")); - const File cppFile (newFile.withFileExtension (".cpp")); + auto headerFile = newFile.withFileExtension (".h"); + auto cppFile = newFile.withFileExtension (".cpp"); headerFile.replaceWithText (String()); cppFile.replaceWithText (String()); @@ -787,6 +787,7 @@ public: } }; +NewFileWizard::Type* createGUIComponentWizard(); NewFileWizard::Type* createGUIComponentWizard() { return new NewGUIComponentWizard(); diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineServer.cpp b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineServer.cpp index 943a66a463..ad2246b5be 100644 --- a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineServer.cpp +++ b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineServer.cpp @@ -26,6 +26,7 @@ #include "../Application/jucer_Headers.h" #include "../Application/jucer_Application.h" +#include "jucer_CompileEngineServer.h" #include "jucer_CompileEngineDLL.h" #include "jucer_MessageIDs.h" #include "jucer_CppHelpers.h" diff --git a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp index 429e4c519b..a4673b5590 100644 --- a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp +++ b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp @@ -188,7 +188,7 @@ void ProjectContentComponent::setProject (Project* newProject) } //============================================================================== -LiveBuildTab* findBuildTab (const TabbedComponent& tabs) +static LiveBuildTab* findBuildTab (const TabbedComponent& tabs) { return dynamic_cast (tabs.getTabContentComponent (1)); } @@ -742,7 +742,7 @@ struct AsyncCommandRetrier : public Timer JUCE_DECLARE_NON_COPYABLE (AsyncCommandRetrier) }; -bool reinvokeCommandAfterCancellingModalComps (const ApplicationCommandTarget::InvocationInfo& info) +static bool reinvokeCommandAfterCancellingModalComps (const ApplicationCommandTarget::InvocationInfo& info) { if (ModalComponentManager::getInstance()->cancelAllModalComponents()) { diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h index 0bba90cc0c..ac3d179fb9 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h @@ -1854,12 +1854,12 @@ private: JUCE_DECLARE_NON_COPYABLE (AndroidProjectExporter) }; -ProjectExporter* createAndroidExporter (Project& p, const ValueTree& t) +inline ProjectExporter* createAndroidExporter (Project& p, const ValueTree& t) { return new AndroidProjectExporter (p, t); } -ProjectExporter* createAndroidExporterForSetting (Project& p, const ValueTree& t) +inline ProjectExporter* createAndroidExporterForSetting (Project& p, const ValueTree& t) { return AndroidProjectExporter::createForSettings (p, t); } diff --git a/extras/Projucer/Source/Utility/Helpers/jucer_FileHelpers.cpp b/extras/Projucer/Source/Utility/Helpers/jucer_FileHelpers.cpp index 4f8f53d751..4801081075 100644 --- a/extras/Projucer/Source/Utility/Helpers/jucer_FileHelpers.cpp +++ b/extras/Projucer/Source/Utility/Helpers/jucer_FileHelpers.cpp @@ -124,18 +124,6 @@ namespace FileHelpers || path.startsWithIgnoreCase ("smb:"); } - String appendPath (const String& path, const String& subpath) - { - if (isAbsolutePath (subpath)) - return unixStylePath (subpath); - - String path1 (unixStylePath (path)); - if (! path1.endsWithChar ('/')) - path1 << '/'; - - return path1 + unixStylePath (subpath); - } - bool shouldPathsBeRelative (String path1, String path2) { path1 = unixStylePath (path1); diff --git a/extras/Projucer/Source/Wizards/jucer_NewProjectWizardClasses.cpp b/extras/Projucer/Source/Wizards/jucer_NewProjectWizardClasses.cpp index 182dd56e8e..25e5ce3f55 100644 --- a/extras/Projucer/Source/Wizards/jucer_NewProjectWizardClasses.cpp +++ b/extras/Projucer/Source/Wizards/jucer_NewProjectWizardClasses.cpp @@ -25,6 +25,7 @@ */ #include "../Application/jucer_Headers.h" +#include "jucer_NewProjectWizardClasses.h" #include "../ProjectSaving/jucer_ProjectExporter.h" #include "../Utility/UI/jucer_SlidingPanelComponent.h" diff --git a/modules/juce_core/zip/juce_ZipFile.cpp b/modules/juce_core/zip/juce_ZipFile.cpp index c22a35d011..933bf4360d 100644 --- a/modules/juce_core/zip/juce_ZipFile.cpp +++ b/modules/juce_core/zip/juce_ZipFile.cpp @@ -23,13 +23,13 @@ namespace juce { -uint16 readUnalignedLittleEndianShort (const void* buffer) +inline uint16 readUnalignedLittleEndianShort (const void* buffer) { auto data = readUnaligned (buffer); return ByteOrder::littleEndianShort (&data); } -uint32 readUnalignedLittleEndianInt (const void* buffer) +inline uint32 readUnalignedLittleEndianInt (const void* buffer) { auto data = readUnaligned (buffer); return ByteOrder::littleEndianInt (&data); diff --git a/modules/juce_events/messages/juce_Initialisation.h b/modules/juce_events/messages/juce_Initialisation.h index bf576a40f3..a3dcd8c126 100644 --- a/modules/juce_events/messages/juce_Initialisation.h +++ b/modules/juce_events/messages/juce_Initialisation.h @@ -121,6 +121,7 @@ public: #else #define JUCE_CREATE_APPLICATION_DEFINE(AppClass) \ + juce::JUCEApplicationBase* juce_CreateApplication(); \ juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); } #define JUCE_MAIN_FUNCTION_DEFINITION \ @@ -158,35 +159,36 @@ public: risk if you decide to use your own delegate and subtle, hard to debug bugs may occur. @interface MyCustomDelegate : NSObject { NSObject* juceDelegate; } @end + @implementation MyCustomDelegate + -(id) init { self = [super init]; juceDelegate = reinterpret_cast*> ([[NSClassFromString (@"JuceAppStartupDelegate") alloc] init]); - return self; } - -(void)dealloc + -(void) dealloc { [juceDelegate release]; [super dealloc]; } - - (void)forwardInvocation:(NSInvocation *)anInvocation + - (void) forwardInvocation: (NSInvocation*) anInvocation { - if (juceDelegate != nullptr && [juceDelegate respondsToSelector:[anInvocation selector]]) - [anInvocation invokeWithTarget:juceDelegate]; - else - [super forwardInvocation:anInvocation]; + if (juceDelegate != nullptr && [juceDelegate respondsToSelector: [anInvocation selector]]) + [anInvocation invokeWithTarget: juceDelegate]; + else + [super forwardInvocation: anInvocation]; } - -(BOOL)respondsToSelector:(SEL)aSelector + -(BOOL) respondsToSelector: (SEL) aSelector { - if (juceDelegate != nullptr && [juceDelegate respondsToSelector:aSelector]) - return YES; + if (juceDelegate != nullptr && [juceDelegate respondsToSelector: aSelector]) + return YES; - return [super respondsToSelector:aSelector]; + return [super respondsToSelector: aSelector]; } @end */