Browse Source

Introjucer: minor AAX stuff.

tags/2021-05-28
jules 13 years ago
parent
commit
0a9223dd36
1 changed files with 56 additions and 46 deletions
  1. +56
    -46
      extras/Introjucer/Source/Project/jucer_AudioPluginModule.h

+ 56
- 46
extras/Introjucer/Source/Project/jucer_AudioPluginModule.h View File

@@ -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);


Loading…
Cancel
Save