From 9191455677ee9b1d505e4034dc3edf18264a5cf8 Mon Sep 17 00:00:00 2001 From: jules Date: Sat, 8 Nov 2014 13:32:57 +0000 Subject: [PATCH] Introjucer: avoided adding unnecessary .r files in plugin builds that don't target RTAS or AU. --- .../Source/Project/jucer_Module.cpp | 37 +++++++++++++------ .../Introjucer/Source/Project/jucer_Module.h | 1 - .../JuceDemoPlugin.xcodeproj/project.pbxproj | 6 +-- .../juce_audio_plugin_client/juce_module_info | 4 +- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/extras/Introjucer/Source/Project/jucer_Module.cpp b/extras/Introjucer/Source/Project/jucer_Module.cpp index 1ebf1b38df..2c33ed6178 100644 --- a/extras/Introjucer/Source/Project/jucer_Module.cpp +++ b/extras/Introjucer/Source/Project/jucer_Module.cpp @@ -467,16 +467,6 @@ static bool exporterTargetMatches (const String& test, String target) return false; } -bool LibraryModule::fileTargetMatches (ProjectExporter& exporter, const String& target) -{ - if (exporter.isXcode()) return exporterTargetMatches ("xcode", target); - if (exporter.isWindows()) return exporterTargetMatches ("msvc", target); - if (exporter.isLinux()) return exporterTargetMatches ("linux", target); - if (exporter.isAndroid()) return exporterTargetMatches ("android", target); - if (exporter.isCodeBlocks()) return exporterTargetMatches ("mingw", target); - return target.isEmpty(); -} - struct FileSorter { static int compareElements (const File& f1, const File& f2) @@ -503,6 +493,30 @@ void LibraryModule::findWildcardMatches (const File& localModuleFolder, const St result.addArray (tempList); } +static bool fileTargetMatches (ProjectExporter& exporter, const String& target) +{ + if (exporter.isXcode()) return exporterTargetMatches ("xcode", target); + if (exporter.isWindows()) return exporterTargetMatches ("msvc", target); + if (exporter.isLinux()) return exporterTargetMatches ("linux", target); + if (exporter.isAndroid()) return exporterTargetMatches ("android", target); + if (exporter.isCodeBlocks()) return exporterTargetMatches ("mingw", target); + return target.isEmpty(); +} + +static bool fileShouldBeAdded (ProjectExporter& exporter, const var& properties) +{ + if (! fileTargetMatches (exporter, properties["target"].toString())) + return false; + + if (properties["RTASOnly"] && ! shouldBuildRTAS (exporter.getProject()).getValue()) + return false; + + if (properties["AudioUnitOnly"] && ! shouldBuildAU (exporter.getProject()).getValue()) + return false; + + return true; +} + void LibraryModule::findAndAddCompiledCode (ProjectExporter& exporter, ProjectSaver& projectSaver, const File& localModuleFolder, Array& result) const { @@ -515,8 +529,7 @@ void LibraryModule::findAndAddCompiledCode (ProjectExporter& exporter, ProjectSa const var& file = files->getReference(i); const String filename (file ["file"].toString()); - if (filename.isNotEmpty() - && fileTargetMatches (exporter, file ["target"].toString())) + if (filename.isNotEmpty() && fileShouldBeAdded (exporter, file)) { const File compiledFile (localModuleFolder.getChildFile (filename)); result.add (compiledFile); diff --git a/extras/Introjucer/Source/Project/jucer_Module.h b/extras/Introjucer/Source/Project/jucer_Module.h index ba70147e93..7b72160f66 100644 --- a/extras/Introjucer/Source/Project/jucer_Module.h +++ b/extras/Introjucer/Source/Project/jucer_Module.h @@ -103,7 +103,6 @@ private: mutable Array sourceFiles; File getModuleHeaderFile (const File& folder) const; - static bool fileTargetMatches (ProjectExporter& exporter, const String& target); void findWildcardMatches (const File& localModuleFolder, const String& wildcardPath, Array& result) const; void findAndAddCompiledCode (ProjectExporter&, ProjectSaver&, const File& localModuleFolder, Array& result) const; diff --git a/extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj b/extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj index 0bc6e0ae77..a5ee113c19 100644 --- a/extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj +++ b/extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj @@ -61,7 +61,6 @@ E01E4438B2F0F3C3CE4F5240 = {isa = PBXBuildFile; fileRef = 9C9DEB7FB75C42C4F47AF999; settings = {COMPILER_FLAGS = "-w"; }; }; 7732BED2285AE6572CC2BF11 = {isa = PBXBuildFile; fileRef = F7454AD16EE05969CCF5FD7C; settings = {COMPILER_FLAGS = "-w"; }; }; C99CF7958D391CB2F97CC5F8 = {isa = PBXBuildFile; fileRef = 2D4B766DA1C66FA2857D80F7; settings = {COMPILER_FLAGS = "-w"; }; }; - 1F20808BDEB51EAFFA12781B = {isa = PBXBuildFile; fileRef = 0444196DEC527454F5783BAD; }; 60CA6D3CBBC03A25C7B86C35 = {isa = PBXBuildFile; fileRef = 3755479207D218969425F91F; }; 0AA1C3259E16BA80C124622D = {isa = PBXBuildFile; fileRef = 1D4AFBEC703C6F373B292D9A; settings = {COMPILER_FLAGS = "-w"; }; }; 6AAB8C946DA0E3E1B96EEF7E = {isa = PBXBuildFile; fileRef = 1E496F7BF3B3C59E5ECACCDE; }; @@ -82,7 +81,6 @@ 0294A7C8FF1EB1FF9E2D96AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; 029A39CA475ED19FDBF0724F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; 036748C1D26A3D752C189108 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0444196DEC527454F5783BAD = {isa = PBXFileReference; lastKnownFileType = file.r; name = "juce_RTAS_MacResources.r"; path = "../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_MacResources.r"; sourceTree = "SOURCE_ROOT"; }; 04555664F9106966CC7A7C16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 047015CE891900C7636A08D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; 04F7098D328A593B1EC368F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; @@ -2057,7 +2055,6 @@ 9C9DEB7FB75C42C4F47AF999, F7454AD16EE05969CCF5FD7C, 2D4B766DA1C66FA2857D80F7, - 0444196DEC527454F5783BAD, 3755479207D218969425F91F, 1D4AFBEC703C6F373B292D9A, 1E496F7BF3B3C59E5ECACCDE, @@ -2186,8 +2183,7 @@ 0D832C784AB07BFDE57BCB92 = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( B003460B11C0B7C1CC07E666, ); runOnlyForDeploymentPostprocessing = 0; }; D95827C1509280C88845BCB4 = {isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( - BF6B9A47774C03C34559CAFE, - 1F20808BDEB51EAFFA12781B, ); runOnlyForDeploymentPostprocessing = 0; }; + BF6B9A47774C03C34559CAFE, ); runOnlyForDeploymentPostprocessing = 0; }; E032EB514708440DE9B7FF2A = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 8265E59547F2C5DDD10F58BF, E32999B782F688D3746FEB08, diff --git a/modules/juce_audio_plugin_client/juce_module_info b/modules/juce_audio_plugin_client/juce_module_info index e72373d154..775e9eaba5 100644 --- a/modules/juce_audio_plugin_client/juce_module_info +++ b/modules/juce_audio_plugin_client/juce_module_info @@ -19,12 +19,12 @@ { "file": "RTAS/juce_RTAS_DigiCode1.cpp", "warnings": "disabled", "stdcall": "1", "target": "xcode, msvc" }, { "file": "RTAS/juce_RTAS_DigiCode2.cpp", "warnings": "disabled", "stdcall": "1", "target": "xcode, msvc" }, { "file": "RTAS/juce_RTAS_DigiCode3.cpp", "warnings": "disabled", "stdcall": "1", "target": "xcode, msvc" }, - { "file": "RTAS/juce_RTAS_MacResources.r", "target": "xcode" }, + { "file": "RTAS/juce_RTAS_MacResources.r", "target": "xcode", "RTASOnly": "1" }, { "file": "RTAS/juce_RTAS_MacUtilities.mm", "target": "xcode" }, { "file": "RTAS/juce_RTAS_WinResources.rsr", "target": "msvc" }, { "file": "RTAS/juce_RTAS_WinUtilities.cpp", "target": "msvc", "warnings": "disabled", "stdcall": "1" }, { "file": "RTAS/juce_RTAS_Wrapper.cpp", "warnings": "disabled", "stdcall": "1", "target": "xcode, msvc" }, - { "file": "AU/juce_AU_Resources.r", "target": "xcode" }, + { "file": "AU/juce_AU_Resources.r", "target": "xcode", "AudioUnitOnly": "1" }, { "file": "AU/juce_AU_Wrapper.mm", "target": "xcode" }, { "file": "AAX/juce_AAX_Wrapper.cpp", "target": "xcode, msvc" }, { "file": "AAX/juce_AAX_Wrapper.mm", "target": "xcode" },