Browse Source

Introjucer: more AAX work.

tags/2021-05-28
jules 13 years ago
parent
commit
5509a4f950
5 changed files with 54 additions and 19 deletions
  1. +8
    -7
      extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h
  2. +16
    -10
      extras/Introjucer/Source/Project/jucer_AudioPluginModule.h
  3. +1
    -1
      extras/Introjucer/Source/Project/jucer_Module.cpp
  4. +27
    -0
      modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.mm
  5. +2
    -1
      modules/juce_audio_plugin_client/juce_module_info

+ 8
- 7
extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h View File

@@ -73,19 +73,20 @@ public:
Project& getProject() noexcept { return project; } Project& getProject() noexcept { return project; }
const Project& getProject() const noexcept { return project; } const Project& getProject() const noexcept { return project; }
Value getSetting (const Identifier& name_) { return settings.getPropertyAsValue (name_, project.getUndoManagerFor (settings)); }
Value getSetting (const Identifier& name) { return settings.getPropertyAsValue (name, project.getUndoManagerFor (settings)); }
String getSettingString (const Identifier& name) const { return settings [name]; }
Value getJuceFolderValue() { return getSetting (Ids::juceFolder); } Value getJuceFolderValue() { return getSetting (Ids::juceFolder); }
String getJuceFolderString() const { return settings [Ids::juceFolder]; }
String getJuceFolderString() const { return getSettingString (Ids::juceFolder); }
Value getTargetLocationValue() { return getSetting (Ids::targetFolder); } Value getTargetLocationValue() { return getSetting (Ids::targetFolder); }
String getTargetLocationString() const { return settings [Ids::targetFolder]; }
String getTargetLocationString() const { return getSettingString (Ids::targetFolder); }
Value getExtraCompilerFlags() { return getSetting (Ids::extraCompilerFlags); } Value getExtraCompilerFlags() { return getSetting (Ids::extraCompilerFlags); }
String getExtraCompilerFlagsString() const { return settings [Ids::extraCompilerFlags]; }
String getExtraCompilerFlagsString() const { return getSettingString (Ids::extraCompilerFlags); }
Value getExtraLinkerFlags() { return getSetting (Ids::extraLinkerFlags); } Value getExtraLinkerFlags() { return getSetting (Ids::extraLinkerFlags); }
String getExtraLinkerFlagsString() const { return settings [Ids::extraLinkerFlags]; }
String getExtraLinkerFlagsString() const { return getSettingString (Ids::extraLinkerFlags); }
// This adds the quotes, and may return angle-brackets, eg: <foo/bar.h> or normal quotes. // This adds the quotes, and may return angle-brackets, eg: <foo/bar.h> or normal quotes.
String getIncludePathForFileInJuceFolder (const String& pathFromJuceFolder, const File& targetIncludeFile) const; String getIncludePathForFileInJuceFolder (const String& pathFromJuceFolder, const File& targetIncludeFile) const;
@@ -102,7 +103,7 @@ public:
String getExporterIdentifierMacro() const String getExporterIdentifierMacro() const
{ {
return "JUCER_" + settings.getType().toString() + "_" return "JUCER_" + settings.getType().toString() + "_"
+ String::toHexString (settings [Ids::targetFolder].toString().hashCode()).toUpperCase();
+ String::toHexString (getSettingString (Ids::targetFolder).hashCode()).toUpperCase();
} }
// An exception that can be thrown by the create() method. // An exception that can be thrown by the create() method.
@@ -256,7 +257,7 @@ public:
//============================================================================== //==============================================================================
Value getExporterPreprocessorDefs() { return getSetting (Ids::extraDefs); } Value getExporterPreprocessorDefs() { return getSetting (Ids::extraDefs); }
String getExporterPreprocessorDefsString() const { return settings [Ids::extraDefs]; }
String getExporterPreprocessorDefsString() const { return getSettingString (Ids::extraDefs); }
// includes exporter, project + config defs // includes exporter, project + config defs
StringPairArray getAllPreprocessorDefs (const BuildConfiguration& config) const; StringPairArray getAllPreprocessorDefs (const BuildConfiguration& config) const;


+ 16
- 10
extras/Introjucer/Source/Project/jucer_AudioPluginModule.h View File

@@ -219,14 +219,15 @@ namespace VSTHelpers
//============================================================================== //==============================================================================
namespace RTASHelpers namespace RTASHelpers
{ {
static Value getRTASFolder (ProjectExporter& exporter) { return exporter.getSetting (Ids::rtasFolder); }
static Value getRTASFolder (ProjectExporter& exporter) { return exporter.getSetting (Ids::rtasFolder); }
static RelativePath getRTASFolderPath (ProjectExporter& exporter) { return RelativePath (exporter.getSettingString (Ids::rtasFolder),
RelativePath::projectFolder); }
static bool isExporterSupported (ProjectExporter& exporter) { return exporter.isVisualStudio() || exporter.isXcode(); } static bool isExporterSupported (ProjectExporter& exporter) { return exporter.isVisualStudio() || exporter.isXcode(); }
static RelativePath getRTASFolderRelativePath (ProjectExporter& exporter) static RelativePath getRTASFolderRelativePath (ProjectExporter& exporter)
{ {
return exporter.rebaseFromProjectFolderToBuildTarget (RelativePath (getRTASFolder (exporter).toString(),
RelativePath::projectFolder));
return exporter.rebaseFromProjectFolderToBuildTarget (getRTASFolderPath (exporter));
} }
static void fixMissingRTASValues (ProjectExporter& exporter) static void fixMissingRTASValues (ProjectExporter& exporter)
@@ -242,7 +243,7 @@ namespace RTASHelpers
static void addExtraSearchPaths (ProjectExporter& exporter) static void addExtraSearchPaths (ProjectExporter& exporter)
{ {
RelativePath rtasFolder (getRTASFolder (exporter).toString(), RelativePath::projectFolder);
RelativePath rtasFolder (getRTASFolderPath (exporter));
if (exporter.isVisualStudio()) if (exporter.isVisualStudio())
{ {
@@ -359,7 +360,7 @@ namespace RTASHelpers
{ {
exporter.xcodeCanUseDwarf = false; exporter.xcodeCanUseDwarf = false;
RelativePath rtasFolder (getRTASFolder (exporter).toString(), RelativePath::projectFolder);
RelativePath rtasFolder (getRTASFolderPath (exporter));
exporter.xcodeExtraLibrariesDebug.add (rtasFolder.getChildFile ("MacBag/Libs/Debug/libPluginLibrary.a")); exporter.xcodeExtraLibrariesDebug.add (rtasFolder.getChildFile ("MacBag/Libs/Debug/libPluginLibrary.a"));
exporter.xcodeExtraLibrariesRelease.add (rtasFolder.getChildFile ("MacBag/Libs/Release/libPluginLibrary.a")); exporter.xcodeExtraLibrariesRelease.add (rtasFolder.getChildFile ("MacBag/Libs/Release/libPluginLibrary.a"));
} }
@@ -467,9 +468,11 @@ namespace AUHelpers
//============================================================================== //==============================================================================
namespace AAXHelpers namespace AAXHelpers
{ {
static Value getAAXFolder (ProjectExporter& exporter) { return exporter.getSetting (Ids::aaxFolder); }
static Value getAAXFolder (ProjectExporter& exporter) { return exporter.getSetting (Ids::aaxFolder); }
static RelativePath getAAXFolderPath (ProjectExporter& exporter) { return RelativePath (exporter.getSettingString (Ids::aaxFolder),
RelativePath::projectFolder); }
static bool isExporterSupported (ProjectExporter& exporter) { return exporter.isVisualStudio() || exporter.isXcode(); }
static bool isExporterSupported (ProjectExporter& exporter) { return exporter.isVisualStudio() || exporter.isXcode(); }
static RelativePath getAAXFolderRelativePath (ProjectExporter& exporter) static RelativePath getAAXFolderRelativePath (ProjectExporter& exporter)
{ {
@@ -490,7 +493,7 @@ namespace AAXHelpers
static void addExtraSearchPaths (ProjectExporter& exporter) static void addExtraSearchPaths (ProjectExporter& exporter)
{ {
RelativePath aaxFolder (getAAXFolder (exporter).toString(), RelativePath::projectFolder);
const RelativePath aaxFolder (getAAXFolderPath (exporter));
exporter.addToExtraSearchPaths (aaxFolder); exporter.addToExtraSearchPaths (aaxFolder);
exporter.addToExtraSearchPaths (aaxFolder.getChildFile ("Interfaces")); exporter.addToExtraSearchPaths (aaxFolder.getChildFile ("Interfaces"));
@@ -503,13 +506,16 @@ namespace AAXHelpers
{ {
fixMissingAAXValues (exporter); fixMissingAAXValues (exporter);
const RelativePath aaxFolder (getAAXFolderPath (exporter));
if (exporter.isVisualStudio()) if (exporter.isVisualStudio())
{ {
// XXX todo
exporter.msvcTargetSuffix = ".aax";
} }
else else
{ {
// XXX todo
exporter.xcodeExtraLibrariesDebug.add (aaxFolder.getChildFile ("Libs/Debug/libAAXLibrary.a"));
exporter.xcodeExtraLibrariesRelease.add (aaxFolder.getChildFile ("Libs/Release/libAAXLibrary.a"));
} }
writePluginCharacteristicsFile (projectSaver); writePluginCharacteristicsFile (projectSaver);


+ 1
- 1
extras/Introjucer/Source/Project/jucer_Module.cpp View File

@@ -527,8 +527,8 @@ void LibraryModule::prepareExporter (ProjectExporter& exporter, ProjectSaver& pr
{ {
if (shouldBuildVST (project).getValue()) VSTHelpers::prepareExporter (exporter, projectSaver); if (shouldBuildVST (project).getValue()) VSTHelpers::prepareExporter (exporter, projectSaver);
if (shouldBuildAU (project).getValue()) AUHelpers::prepareExporter (exporter, projectSaver); if (shouldBuildAU (project).getValue()) AUHelpers::prepareExporter (exporter, projectSaver);
if (shouldBuildRTAS (project).getValue()) RTASHelpers::prepareExporter (exporter, projectSaver, localFolder);
if (shouldBuildAAX (project).getValue()) AAXHelpers::prepareExporter (exporter, projectSaver, localFolder); if (shouldBuildAAX (project).getValue()) AAXHelpers::prepareExporter (exporter, projectSaver, localFolder);
if (shouldBuildRTAS (project).getValue()) RTASHelpers::prepareExporter (exporter, projectSaver, localFolder);
} }
} }


+ 27
- 0
modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.mm View File

@@ -0,0 +1,27 @@
/*
==============================================================================
This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-11 by Raw Material Software Ltd.
------------------------------------------------------------------------------
JUCE can be redistributed and/or modified under the terms of the GNU General
Public License (Version 2), as published by the Free Software Foundation.
A copy of the license is included in the JUCE distribution, or can be found
online at www.gnu.org/licenses.
JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
------------------------------------------------------------------------------
To release a closed-source product which uses JUCE, commercial licenses are
available: visit www.rawmaterialsoftware.com/juce for more information.
==============================================================================
*/
#define JUCE_INCLUDED_AAX_IN_MM 1
#include "juce_AAX_Wrapper.cpp"

+ 2
- 1
modules/juce_audio_plugin_client/juce_module_info View File

@@ -24,7 +24,8 @@
{ "file": "RTAS/juce_RTAS_Wrapper.cpp", "warnings": "disabled", "stdcall": "1" }, { "file": "RTAS/juce_RTAS_Wrapper.cpp", "warnings": "disabled", "stdcall": "1" },
{ "file": "AU/juce_AU_Resources.r", "target": "xcode" }, { "file": "AU/juce_AU_Resources.r", "target": "xcode" },
{ "file": "AU/juce_AU_Wrapper.mm", "target": "xcode" }, { "file": "AU/juce_AU_Wrapper.mm", "target": "xcode" },
{ "file": "AAX/juce_AAX_Wrapper.cpp" }
{ "file": "AAX/juce_AAX_Wrapper.cpp" },
{ "file": "AAX/juce_AAX_Wrapper.mm", "target": "xcode" }
], ],
"browse": [ "AU/*.cpp", "browse": [ "AU/*.cpp",


Loading…
Cancel
Save