From 0a9223dd362210620bb26e4dd59b1dd509ffc916 Mon Sep 17 00:00:00 2001 From: jules Date: Sun, 13 May 2012 14:05:12 +0100 Subject: [PATCH] Introjucer: minor AAX stuff. --- .../Source/Project/jucer_AudioPluginModule.h | 102 ++++++++++-------- 1 file changed, 56 insertions(+), 46 deletions(-) diff --git a/extras/Introjucer/Source/Project/jucer_AudioPluginModule.h b/extras/Introjucer/Source/Project/jucer_AudioPluginModule.h index d77a2928ac..25dff0d583 100644 --- a/extras/Introjucer/Source/Project/jucer_AudioPluginModule.h +++ b/extras/Introjucer/Source/Project/jucer_AudioPluginModule.h @@ -102,7 +102,7 @@ namespace flags.set ("JucePlugin_Build_VST", valueToBool (shouldBuildVST (project))); flags.set ("JucePlugin_Build_AU", valueToBool (shouldBuildAU (project))); flags.set ("JucePlugin_Build_RTAS", valueToBool (shouldBuildRTAS (project))); - flags.set ("JucePlugin_Build_AAX", valueToBool (shouldBuildAAX (project))); + flags.set ("JucePlugin_Build_AAX", valueToBool (shouldBuildAAX (project))); flags.set ("JucePlugin_Name", getPluginName (project).toString().quoted()); flags.set ("JucePlugin_Desc", getPluginDesc (project).toString().quoted()); flags.set ("JucePlugin_Manufacturer", getPluginManufacturer (project).toString().quoted()); @@ -221,6 +221,8 @@ namespace RTASHelpers { static Value getRTASFolder (ProjectExporter& exporter) { return exporter.getSetting (Ids::rtasFolder); } + static bool isExporterSupported (ProjectExporter& exporter) { return exporter.isVisualStudio() || exporter.isXcode(); } + static RelativePath getRTASFolderRelativePath (ProjectExporter& exporter) { return exporter.rebaseFromProjectFolderToBuildTarget (RelativePath (getRTASFolder (exporter).toString(), @@ -318,56 +320,59 @@ namespace RTASHelpers static inline void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver, const File& moduleFolder) { - fixMissingRTASValues (exporter); - - if (exporter.isVisualStudio()) + if (isExporterSupported (exporter)) { - exporter.msvcTargetSuffix = ".dpm"; - exporter.msvcNeedsDLLRuntimeLib = true; + fixMissingRTASValues (exporter); - String winbag (getRTASFolderRelativePath (exporter).getChildFile ("WinBag").toWindowsStyle()); + if (exporter.isVisualStudio()) + { + exporter.msvcTargetSuffix = ".dpm"; + exporter.msvcNeedsDLLRuntimeLib = true; - // (VS10 automatically adds escape characters to the quotes for this definition) - winbag = (exporter.getVisualStudioVersion() < 10) ? CodeHelpers::addEscapeChars (winbag.quoted()) - : CodeHelpers::addEscapeChars (winbag).quoted(); + String winbag (getRTASFolderRelativePath (exporter).getChildFile ("WinBag").toWindowsStyle()); - exporter.msvcExtraPreprocessorDefs.set ("JucePlugin_WinBag_path", winbag); + // (VS10 automatically adds escape characters to the quotes for this definition) + winbag = (exporter.getVisualStudioVersion() < 10) ? CodeHelpers::addEscapeChars (winbag.quoted()) + : CodeHelpers::addEscapeChars (winbag).quoted(); - String msvcPathToRTASFolder (exporter.getJucePathFromTargetFolder() - .getChildFile ("juce_audio_plugin_client/RTAS") - .toWindowsStyle() + "\\"); + exporter.msvcExtraPreprocessorDefs.set ("JucePlugin_WinBag_path", winbag); - exporter.msvcDelayLoadedDLLs = "DAE.dll; DigiExt.dll; DSI.dll; PluginLib.dll; DSPManager.dll"; + String msvcPathToRTASFolder (exporter.getJucePathFromTargetFolder() + .getChildFile ("juce_audio_plugin_client/RTAS") + .toWindowsStyle() + "\\"); - if (! exporter.getExtraLinkerFlags().toString().contains ("/FORCE:multiple")) - exporter.getExtraLinkerFlags() = exporter.getExtraLinkerFlags().toString() + " /FORCE:multiple"; + exporter.msvcDelayLoadedDLLs = "DAE.dll; DigiExt.dll; DSI.dll; PluginLib.dll; DSPManager.dll"; - for (ProjectExporter::ConfigIterator config (exporter); config.next();) - { - config->getValue (Ids::msvcModuleDefinitionFile) = msvcPathToRTASFolder + "juce_RTAS_WinExports.def"; + if (! exporter.getExtraLinkerFlags().toString().contains ("/FORCE:multiple")) + exporter.getExtraLinkerFlags() = exporter.getExtraLinkerFlags().toString() + " /FORCE:multiple"; + + for (ProjectExporter::ConfigIterator config (exporter); config.next();) + { + config->getValue (Ids::msvcModuleDefinitionFile) = msvcPathToRTASFolder + "juce_RTAS_WinExports.def"; - if (config->getValue (Ids::postbuildCommand).toString().isEmpty()) - config->getValue (Ids::postbuildCommand) = "copy /Y \"" + msvcPathToRTASFolder + "juce_RTAS_WinResources.rsr" - + "\" \"$(TargetPath)\".rsr"; + if (config->getValue (Ids::postbuildCommand).toString().isEmpty()) + config->getValue (Ids::postbuildCommand) = "copy /Y \"" + msvcPathToRTASFolder + "juce_RTAS_WinResources.rsr" + + "\" \"$(TargetPath)\".rsr"; + } } - } - else - { - exporter.xcodeCanUseDwarf = false; + else + { + exporter.xcodeCanUseDwarf = false; - RelativePath rtasFolder (getRTASFolder (exporter).toString(), RelativePath::projectFolder); - exporter.xcodeExtraLibrariesDebug.add (rtasFolder.getChildFile ("MacBag/Libs/Debug/libPluginLibrary.a")); - exporter.xcodeExtraLibrariesRelease.add (rtasFolder.getChildFile ("MacBag/Libs/Release/libPluginLibrary.a")); - } + RelativePath rtasFolder (getRTASFolder (exporter).toString(), RelativePath::projectFolder); + exporter.xcodeExtraLibrariesDebug.add (rtasFolder.getChildFile ("MacBag/Libs/Debug/libPluginLibrary.a")); + exporter.xcodeExtraLibrariesRelease.add (rtasFolder.getChildFile ("MacBag/Libs/Release/libPluginLibrary.a")); + } - writePluginCharacteristicsFile (projectSaver); + writePluginCharacteristicsFile (projectSaver); - addExtraSearchPaths (exporter); + addExtraSearchPaths (exporter); + } } static inline void createPropertyEditors (ProjectExporter& exporter, PropertyListBuilder& props) { - if (exporter.isXcode() || exporter.isVisualStudio()) + if (isExporterSupported (exporter)) { fixMissingRTASValues (exporter); @@ -464,6 +469,8 @@ namespace AAXHelpers { static Value getAAXFolder (ProjectExporter& exporter) { return exporter.getSetting (Ids::aaxFolder); } + static bool isExporterSupported (ProjectExporter& exporter) { return exporter.isVisualStudio() || exporter.isXcode(); } + static RelativePath getAAXFolderRelativePath (ProjectExporter& exporter) { return exporter.rebaseFromProjectFolderToBuildTarget (RelativePath (getAAXFolder (exporter).toString(), @@ -492,25 +499,28 @@ namespace AAXHelpers static inline void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver, const File& moduleFolder) { - fixMissingAAXValues (exporter); - - if (exporter.isVisualStudio()) + if (isExporterSupported (exporter)) { - // XXX todo - } - else - { - // XXX todo - } + fixMissingAAXValues (exporter); - writePluginCharacteristicsFile (projectSaver); + if (exporter.isVisualStudio()) + { + // XXX todo + } + else + { + // XXX todo + } - addExtraSearchPaths (exporter); + writePluginCharacteristicsFile (projectSaver); + + addExtraSearchPaths (exporter); + } } static inline void createPropertyEditors (ProjectExporter& exporter, PropertyListBuilder& props) { - if (exporter.isXcode() || exporter.isVisualStudio()) + if (isExporterSupported (exporter)) { fixMissingAAXValues (exporter);