1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

AAX: Projucer, use bundled copy of the AAX SDK by default

This commit is contained in:
reuk 2024-04-18 19:18:56 +01:00
parent 430bddfb06
commit 10f6bd34a7
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
5 changed files with 47 additions and 50 deletions

View file

@ -240,7 +240,8 @@ private:
if (getSelectedOS() != TargetOS::linux)
{
builder.add (new FilePathPropertyComponent (aaxPathValue, "AAX SDK", true, isThisOS),
"If you are building AAX plug-ins, this should be the path to the AAX SDK folder.");
"If you need to use a custom version of the AAX SDK, this should be the path to the AAX SDK folder. "
"JUCE bundles a copy of the AAX SDK, so you normally shouldn't need to set this.");
}
builder.add (new FilePathPropertyComponent (androidSDKPathValue, "Android SDK", true, isThisOS),

View file

@ -1243,7 +1243,7 @@ public:
//==============================================================================
build_tools::RelativePath getAAXIconFile() const
{
build_tools::RelativePath aaxSDK (owner.getAAXPathString(), build_tools::RelativePath::projectFolder);
const auto aaxSdk = owner.getAAXPathRelative();
build_tools::RelativePath projectIcon ("icon.ico", build_tools::RelativePath::buildTargetFolder);
if (getOwner().getTargetFolder().getChildFile ("icon.ico").existsAsFile())
@ -1251,7 +1251,7 @@ public:
getOwner().getProject().getProjectFolder(),
build_tools::RelativePath::projectFolder);
return aaxSDK.getChildFile ("Utilities").getChildFile ("PlugIn.ico");
return aaxSdk.getChildFile ("Utilities").getChildFile ("PlugIn.ico");
}
String getExtraPostBuildSteps (const MSVCBuildConfiguration& config) const
@ -1276,10 +1276,10 @@ public:
if (type == AAXPlugIn)
{
const build_tools::RelativePath aaxSDK (owner.getAAXPathString(), build_tools::RelativePath::projectFolder);
const build_tools::RelativePath aaxLibsFolder = aaxSDK.getChildFile ("Libs");
const build_tools::RelativePath bundleScript = aaxSDK.getChildFile ("Utilities").getChildFile ("CreatePackage.bat");
const build_tools::RelativePath iconFilePath = getAAXIconFile();
const auto aaxSdk = owner.getAAXPathRelative();
const auto aaxLibsFolder = aaxSdk.getChildFile ("Libs");
const auto bundleScript = aaxSdk.getChildFile ("Utilities").getChildFile ("CreatePackage.bat");
const auto iconFilePath = getAAXIconFile();
const auto segments = getAaxBundleStructure (config);

View file

@ -460,16 +460,11 @@ build_tools::RelativePath ProjectExporter::getInternalVST3SDKPath()
void ProjectExporter::addAAXFoldersToPath()
{
auto aaxFolder = getAAXPathString();
const auto aaxFolder = getAAXPathRelative();
if (aaxFolder.isNotEmpty())
{
build_tools::RelativePath aaxFolderPath (aaxFolder, build_tools::RelativePath::projectFolder);
addToExtraSearchPaths (aaxFolderPath);
addToExtraSearchPaths (aaxFolderPath.getChildFile ("Interfaces"));
addToExtraSearchPaths (aaxFolderPath.getChildFile ("Interfaces").getChildFile ("ACF"));
}
addToExtraSearchPaths (aaxFolder);
addToExtraSearchPaths (aaxFolder.getChildFile ("Interfaces"));
addToExtraSearchPaths (aaxFolder.getChildFile ("Interfaces").getChildFile ("ACF"));
}
void ProjectExporter::addARAFoldersToPath()

View file

@ -184,7 +184,16 @@ public:
bool shouldUseGNUExtensions() const { return gnuExtensionsValue.get(); }
String getVSTLegacyPathString() const { return vstLegacyPathValueWrapper.getCurrentValue(); }
String getAAXPathString() const { return aaxPathValueWrapper.getCurrentValue(); }
auto getAAXPathRelative() const
{
const String userAaxFolder = aaxPathValueWrapper.getCurrentValue();
return userAaxFolder.isNotEmpty()
? build_tools::RelativePath (userAaxFolder, build_tools::RelativePath::projectFolder)
: getModuleFolderRelativeToProject ("juce_audio_plugin_client").getChildFile ("AAX")
.getChildFile ("SDK");
}
String getARAPathString() const { return araPathValueWrapper.getCurrentValue(); }
// NB: this is the path to the parent "modules" folder that contains the named module, not the

View file

@ -356,43 +356,38 @@ bool StoredSettings::isJUCEPathIncorrect()
static String getFallbackPathForOS (const Identifier& key, DependencyPathOS os)
{
if (key == Ids::jucePath)
{
return (os == TargetOS::windows ? "C:\\JUCE" : "~/JUCE");
}
else if (key == Ids::defaultJuceModulePath)
{
if (key == Ids::defaultJuceModulePath)
return (os == TargetOS::windows ? "C:\\JUCE\\modules" : "~/JUCE/modules");
}
else if (key == Ids::defaultUserModulePath)
{
if (key == Ids::defaultUserModulePath)
return (os == TargetOS::windows ? "C:\\modules" : "~/modules");
}
else if (key == Ids::vstLegacyPath)
if (key == Ids::vstLegacyPath)
return {};
if (key == Ids::aaxPath)
return {}; // Empty means "use internal SDK"
if (key == Ids::araPath)
{
if (os == TargetOS::windows) return "C:\\SDKs\\ARA_SDK";
if (os == TargetOS::osx) return "~/SDKs/ARA_SDK";
return {};
}
else if (key == Ids::aaxPath)
if (key == Ids::androidSDKPath)
{
if (os == TargetOS::windows) return "C:\\SDKs\\AAX";
else if (os == TargetOS::osx) return "~/SDKs/AAX";
else return {}; // no AAX on this OS!
}
else if (key == Ids::araPath)
{
if (os == TargetOS::windows) return "C:\\SDKs\\ARA_SDK";
else if (os == TargetOS::osx) return "~/SDKs/ARA_SDK";
else return {};
}
else if (key == Ids::androidSDKPath)
{
if (os == TargetOS::windows) return "${user.home}\\AppData\\Local\\Android\\Sdk";
else if (os == TargetOS::osx) return "${user.home}/Library/Android/sdk";
else if (os == TargetOS::linux) return "${user.home}/Android/Sdk";
if (os == TargetOS::windows) return "${user.home}\\AppData\\Local\\Android\\Sdk";
if (os == TargetOS::osx) return "${user.home}/Library/Android/sdk";
if (os == TargetOS::linux) return "${user.home}/Android/Sdk";
jassertfalse;
return {};
}
else if (key == Ids::androidStudioExePath)
if (key == Ids::androidStudioExePath)
{
if (os == TargetOS::windows)
{
@ -405,14 +400,11 @@ static String getFallbackPathForOS (const Identifier& key, DependencyPathOS os)
return "C:\\Program Files\\Android\\Android Studio\\bin\\studio64.exe";
}
else if (os == TargetOS::osx)
{
if (os == TargetOS::osx)
return "/Applications/Android Studio.app";
}
else
{
return {}; // no Android Studio on this OS!
}
return {}; // no Android Studio on this OS!
}
// unknown key!