Browse Source

Projucer: Removed the per-exporter AAX and RTAS SDK and Android SDK/NDK path settings as well as the unused VST3 SDK setting as this was interfering with the embedded VST3 SDK path

tags/2021-05-28
ed 7 years ago
parent
commit
ff263ecded
11 changed files with 38 additions and 93 deletions
  1. +22
    -0
      BREAKING-CHANGES.txt
  2. +0
    -1
      extras/Projucer/Source/Project/UI/Sidebar/jucer_ExporterTreeItems.h
  3. +2
    -16
      extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h
  4. +0
    -1
      extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h
  5. +0
    -3
      extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h
  6. +5
    -21
      extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h
  7. +0
    -8
      extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h
  8. +3
    -13
      extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h
  9. +3
    -22
      extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp
  10. +3
    -6
      extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h
  11. +0
    -2
      extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.cpp

+ 22
- 0
BREAKING-CHANGES.txt View File

@@ -4,6 +4,28 @@ JUCE breaking changes
Develop Develop
======= =======
Change
------
The per-exporter AAX/RTAS/VST3 SDK and Android SDK/NDK path options have been
removed.
Possible Issues
---------------
Projects that previously used these fields to set the paths to the above SDKs
may no longer build.
Workaround
----------
Use the Projucer's global paths settings to point to the location of these
SDKs, either by opening the "Projucer/File->Global Paths..." menu item or using
the "--set-global-search-path" command-line option.
Rationale
---------
Having multiple places where SDK paths could be set was confusing and
could interfere with the embedded VST3 SDK path in some cases.
Change Change
------ ------
SystemStats::getDeviceDescription() will now return the device code on iOS e.g. SystemStats::getDeviceDescription() will now return the device code on iOS e.g.


+ 0
- 1
extras/Projucer/Source/Project/UI/Sidebar/jucer_ExporterTreeItems.h View File

@@ -36,7 +36,6 @@ public:
: project (p), exporter (e), configListTree (exporter->getConfigurations()), : project (p), exporter (e), configListTree (exporter->getConfigurations()),
exporterIndex (index) exporterIndex (index)
{ {
exporter->initialiseDependencyPathValues();
configListTree.addListener (this); configListTree.addListener (this);
targetLocationValue.referTo (exporter->getTargetLocationValue()); targetLocationValue.referTo (exporter->getTargetLocationValue());
targetLocationValue.addListener (this); targetLocationValue.addListener (this);


+ 2
- 16
extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h View File

@@ -92,13 +92,6 @@ public:
return nullptr; return nullptr;
} }
//==============================================================================
void initialiseDependencyPathValues() override
{
sdkPath.referTo (Value (new DependencyPathValueSource (getSetting (Ids::androidSDKPath), Ids::androidSDKPath, TargetOS::getThisOS())));
ndkPath.referTo (Value (new DependencyPathValueSource (getSetting (Ids::androidNDKPath), Ids::androidNDKPath, TargetOS::getThisOS())));
}
//============================================================================== //==============================================================================
ValueWithDefault androidJavaLibs, androidRepositories, androidDependencies, androidScreenOrientation, androidActivityClass, ValueWithDefault androidJavaLibs, androidRepositories, androidDependencies, androidScreenOrientation, androidActivityClass,
androidActivitySubClassName, androidActivityBaseClassName, androidManifestCustomXmlElements, androidVersionCode, androidActivitySubClassName, androidActivityBaseClassName, androidManifestCustomXmlElements, androidVersionCode,
@@ -823,8 +816,8 @@ private:
{ {
String props; String props;
props << "ndk.dir=" << sanitisePath (ndkPath.toString()) << newLine
<< "sdk.dir=" << sanitisePath (sdkPath.toString()) << newLine;
props << "ndk.dir=" << sanitisePath (getAppSettings().getStoredPath (Ids::androidNDKPath).toString()) << newLine
<< "sdk.dir=" << sanitisePath (getAppSettings().getStoredPath (Ids::androidSDKPath).toString()) << newLine;
return props; return props;
} }
@@ -876,12 +869,6 @@ private:
props.add (new TextPropertyComponent (androidVersionCode, "Android Version Code", 32, false), props.add (new TextPropertyComponent (androidVersionCode, "Android Version Code", 32, false),
"An integer value that represents the version of the application code, relative to other versions."); "An integer value that represents the version of the application code, relative to other versions.");
props.add (new DependencyPathPropertyComponent (project.getFile().getParentDirectory(), sdkPath, "Android SDK Path"),
"The path to the Android SDK folder on the target build machine");
props.add (new DependencyPathPropertyComponent (project.getFile().getParentDirectory(), ndkPath, "Android NDK Path"),
"The path to the Android NDK folder on the target build machine");
props.add (new TextPropertyComponent (androidMinimumSDK, "Minimum SDK version", 32, false), props.add (new TextPropertyComponent (androidMinimumSDK, "Minimum SDK version", 32, false),
"The number of the minimum version of the Android SDK that the app requires"); "The number of the minimum version of the Android SDK that the app requires");
@@ -2015,7 +2002,6 @@ private:
} }
//============================================================================== //==============================================================================
Value sdkPath, ndkPath;
const File AndroidExecutable; const File AndroidExecutable;
JUCE_DECLARE_NON_COPYABLE (AndroidProjectExporter) JUCE_DECLARE_NON_COPYABLE (AndroidProjectExporter)


+ 0
- 1
extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CLion.h View File

@@ -101,7 +101,6 @@ public:
bool supportsTargetType (ProjectType::Target::Type) const override { return true; } bool supportsTargetType (ProjectType::Target::Type) const override { return true; }
void addPlatformSpecificSettingsForProjectType (const ProjectType&) override {} void addPlatformSpecificSettingsForProjectType (const ProjectType&) override {}
void initialiseDependencyPathValues() override {}
//============================================================================== //==============================================================================
bool canLaunchProject() override bool canLaunchProject() override


+ 0
- 3
extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h View File

@@ -180,9 +180,6 @@ public:
jassert (targets.size() > 0); jassert (targets.size() > 0);
} }
//==============================================================================
void initialiseDependencyPathValues() override {}
private: private:
ValueWithDefault targetPlatformValue; ValueWithDefault targetPlatformValue;


+ 5
- 21
extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h View File

@@ -118,22 +118,6 @@ public:
} }
} }
//==============================================================================
void initialiseDependencyPathValues() override
{
vst3Path.referTo (Value (new DependencyPathValueSource (getSetting (Ids::vst3Folder),
Ids::vst3Path,
TargetOS::windows)));
aaxPath.referTo (Value (new DependencyPathValueSource (getSetting (Ids::aaxFolder),
Ids::aaxPath,
TargetOS::windows)));
rtasPath.referTo (Value (new DependencyPathValueSource (getSetting (Ids::rtasFolder),
Ids::rtasPath,
TargetOS::windows)));
}
//============================================================================== //==============================================================================
class MSVCBuildConfiguration : public BuildConfiguration, class MSVCBuildConfiguration : public BuildConfiguration,
private Value::Listener private Value::Listener
@@ -1061,7 +1045,7 @@ public:
//============================================================================== //==============================================================================
RelativePath getAAXIconFile() const RelativePath getAAXIconFile() const
{ {
RelativePath aaxSDK (getOwner().getAAXPathValue().toString(), RelativePath::projectFolder);
RelativePath aaxSDK (owner.getGlobalAAXPathString(), RelativePath::projectFolder);
RelativePath projectIcon ("icon.ico", RelativePath::buildTargetFolder); RelativePath projectIcon ("icon.ico", RelativePath::buildTargetFolder);
if (getOwner().getTargetFolder().getChildFile ("icon.ico").existsAsFile()) if (getOwner().getTargetFolder().getChildFile ("icon.ico").existsAsFile())
@@ -1076,7 +1060,7 @@ public:
{ {
if (type == AAXPlugIn) if (type == AAXPlugIn)
{ {
RelativePath aaxSDK (getOwner().getAAXPathValue().toString(), RelativePath::projectFolder);
RelativePath aaxSDK (owner.getGlobalAAXPathString(), RelativePath::projectFolder);
RelativePath aaxLibsFolder = aaxSDK.getChildFile ("Libs"); RelativePath aaxLibsFolder = aaxSDK.getChildFile ("Libs");
RelativePath bundleScript = aaxSDK.getChildFile ("Utilities").getChildFile ("CreatePackage.bat"); RelativePath bundleScript = aaxSDK.getChildFile ("Utilities").getChildFile ("CreatePackage.bat");
RelativePath iconFilePath = getAAXIconFile(); RelativePath iconFilePath = getAAXIconFile();
@@ -1167,13 +1151,13 @@ public:
{ {
case AAXPlugIn: case AAXPlugIn:
{ {
auto aaxLibsFolder = RelativePath (getOwner().getAAXPathValue().toString(), RelativePath::projectFolder).getChildFile ("Libs");
auto aaxLibsFolder = RelativePath (owner.getGlobalAAXPathString(), RelativePath::projectFolder).getChildFile ("Libs");
defines.set ("JucePlugin_AAXLibs_path", createRebasedPath (aaxLibsFolder)); defines.set ("JucePlugin_AAXLibs_path", createRebasedPath (aaxLibsFolder));
} }
break; break;
case RTASPlugIn: case RTASPlugIn:
{ {
RelativePath rtasFolder (getOwner().getRTASPathValue().toString(), RelativePath::projectFolder);
RelativePath rtasFolder (owner.getGlobalRTASPathString(), RelativePath::projectFolder);
defines.set ("JucePlugin_WinBag_path", createRebasedPath (rtasFolder.getChildFile ("WinBag"))); defines.set ("JucePlugin_WinBag_path", createRebasedPath (rtasFolder.getChildFile ("WinBag")));
} }
break; break;
@@ -1195,7 +1179,7 @@ public:
StringArray searchPaths; StringArray searchPaths;
if (type == RTASPlugIn) if (type == RTASPlugIn)
{ {
RelativePath rtasFolder (getOwner().getRTASPathValue().toString(), RelativePath::projectFolder);
RelativePath rtasFolder (owner.getGlobalRTASPathString(), RelativePath::projectFolder);
static const char* p[] = { "AlturaPorts/TDMPlugins/PluginLibrary/EffectClasses", static const char* p[] = { "AlturaPorts/TDMPlugins/PluginLibrary/EffectClasses",
"AlturaPorts/TDMPlugins/PluginLibrary/ProcessClasses", "AlturaPorts/TDMPlugins/PluginLibrary/ProcessClasses",


+ 0
- 8
extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h View File

@@ -421,14 +421,6 @@ public:
jassert (targets.size() > 0); jassert (targets.size() > 0);
} }
//==============================================================================
void initialiseDependencyPathValues() override
{
vst3Path.referTo (Value (new DependencyPathValueSource (getSetting (Ids::vst3Folder),
Ids::vst3Path,
TargetOS::linux)));
}
private: private:
ValueWithDefault extraPkgConfigValue; ValueWithDefault extraPkgConfigValue;


+ 3
- 13
extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h View File

@@ -424,14 +424,6 @@ public:
return (MD5 (getPostBuildScript().toUTF8()).toHexString() == "265ac212a7e734c5bbd6150e1eae18a1"); return (MD5 (getPostBuildScript().toUTF8()).toHexString() == "265ac212a7e734c5bbd6150e1eae18a1");
} }
//==============================================================================
void initialiseDependencyPathValues() override
{
vst3Path.referTo (Value (new DependencyPathValueSource (getSetting (Ids::vst3Folder), Ids::vst3Path, TargetOS::osx)));
aaxPath. referTo (Value (new DependencyPathValueSource (getSetting (Ids::aaxFolder), Ids::aaxPath, TargetOS::osx)));
rtasPath.referTo (Value (new DependencyPathValueSource (getSetting (Ids::rtasFolder), Ids::rtasPath, TargetOS::osx)));
}
protected: protected:
//============================================================================== //==============================================================================
class XcodeBuildConfiguration : public BuildConfiguration class XcodeBuildConfiguration : public BuildConfiguration
@@ -1630,9 +1622,7 @@ public:
{ {
if (type == AAXPlugIn) if (type == AAXPlugIn)
{ {
auto aaxLibsFolder
= RelativePath (owner.getAAXPathValue().toString(), RelativePath::projectFolder)
.getChildFile ("Libs");
auto aaxLibsFolder = RelativePath (owner.getGlobalAAXPathString(), RelativePath::projectFolder).getChildFile ("Libs");
String libraryPath (config.isDebug() ? "Debug" : "Release"); String libraryPath (config.isDebug() ? "Debug" : "Release");
libraryPath += "/libAAXLibrary_libcpp.a"; libraryPath += "/libAAXLibrary_libcpp.a";
@@ -1641,7 +1631,7 @@ public:
} }
else if (type == RTASPlugIn) else if (type == RTASPlugIn)
{ {
RelativePath rtasFolder (owner.getRTASPathValue().toString(), RelativePath::projectFolder);
RelativePath rtasFolder (owner.getGlobalRTASPathString(), RelativePath::projectFolder);
extraLibs.add (rtasFolder.getChildFile ("MacBag/Libs/Debug/libPluginLibrary.a")); extraLibs.add (rtasFolder.getChildFile ("MacBag/Libs/Debug/libPluginLibrary.a"));
extraLibs.add (rtasFolder.getChildFile ("MacBag/Libs/Release/libPluginLibrary.a")); extraLibs.add (rtasFolder.getChildFile ("MacBag/Libs/Release/libPluginLibrary.a"));
@@ -1654,7 +1644,7 @@ public:
if (type == RTASPlugIn) if (type == RTASPlugIn)
{ {
RelativePath rtasFolder (owner.getRTASPathValue().toString(), RelativePath::projectFolder);
RelativePath rtasFolder (owner.getGlobalRTASPathString(), RelativePath::projectFolder);
targetExtraSearchPaths.add ("$(DEVELOPER_DIR)/Headers/FlatCarbon"); targetExtraSearchPaths.add ("$(DEVELOPER_DIR)/Headers/FlatCarbon");
targetExtraSearchPaths.add ("$(SDKROOT)/Developer/Headers/FlatCarbon"); targetExtraSearchPaths.add ("$(SDKROOT)/Developer/Headers/FlatCarbon");


+ 3
- 22
extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp View File

@@ -296,8 +296,6 @@ void ProjectExporter::createPropertyEditors (PropertyListBuilder& props)
"The location of the folder in which the " + name + " project will be created. " "The location of the folder in which the " + name + " project will be created. "
"This path can be absolute, but it's much more sensible to make it relative to the jucer project directory."); "This path can be absolute, but it's much more sensible to make it relative to the jucer project directory.");
createDependencyPathProperties (props);
props.add (new TextPropertyComponent (extraPPDefsValue, "Extra Preprocessor Definitions", 32768, true), props.add (new TextPropertyComponent (extraPPDefsValue, "Extra Preprocessor Definitions", 32768, true),
"Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace, commas, " "Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace, commas, "
"or new-lines to separate the items - to include a space or comma in a definition, precede it with a backslash."); "or new-lines to separate the items - to include a space or comma in a definition, precede it with a backslash.");
@@ -327,23 +325,6 @@ void ProjectExporter::createPropertyEditors (PropertyListBuilder& props)
"Extra comments: This field is not used for code or project generation, it's just a space where you can express your thoughts."); "Extra comments: This field is not used for code or project generation, it's just a space where you can express your thoughts.");
} }
void ProjectExporter::createDependencyPathProperties (PropertyListBuilder& props)
{
if (shouldBuildTargetType (ProjectType::Target::AAXPlugIn) && project.shouldBuildAAX())
{
if (dynamic_cast<DependencyPathValueSource*> (&getAAXPathValue().getValueSource()) != nullptr)
props.add (new DependencyPathPropertyComponent (project.getFile().getParentDirectory(), getAAXPathValue(), "AAX SDK Folder"),
"If you're building an AAX plugin, this must be the folder containing the AAX SDK. This can be an absolute path, or a path relative to the Projucer project file.");
}
if (shouldBuildTargetType (ProjectType::Target::RTASPlugIn) && project.shouldBuildRTAS())
{
if (dynamic_cast<DependencyPathValueSource*> (&getRTASPathValue().getValueSource()) != nullptr)
props.add (new DependencyPathPropertyComponent (project.getFile().getParentDirectory(), getRTASPathValue(), "RTAS SDK Folder"),
"If you're building an RTAS, this must be the folder containing the RTAS SDK. This can be an absolute path, or a path relative to the Projucer project file.");
}
}
void ProjectExporter::createIconProperties (PropertyListBuilder& props) void ProjectExporter::createIconProperties (PropertyListBuilder& props)
{ {
OwnedArray<Project::Item> images; OwnedArray<Project::Item> images;
@@ -403,7 +384,7 @@ RelativePath ProjectExporter::getInternalVST3SDKPath()
void ProjectExporter::addVST3FolderToPath() void ProjectExporter::addVST3FolderToPath()
{ {
auto vst3Folder = getVST3PathValue().toString();
auto vst3Folder = getGlobalVST3PathString();
if (vst3Folder.isNotEmpty()) if (vst3Folder.isNotEmpty())
addToExtraSearchPaths (RelativePath (vst3Folder, RelativePath::projectFolder), 0); addToExtraSearchPaths (RelativePath (vst3Folder, RelativePath::projectFolder), 0);
@@ -413,11 +394,11 @@ void ProjectExporter::addVST3FolderToPath()
void ProjectExporter::addAAXFoldersToPath() void ProjectExporter::addAAXFoldersToPath()
{ {
auto aaxFolder = getAAXPathValue().toString();
auto aaxFolder = getGlobalAAXPathString();
if (aaxFolder.isNotEmpty()) if (aaxFolder.isNotEmpty())
{ {
RelativePath aaxFolderPath (getAAXPathValue().toString(), RelativePath::projectFolder);
RelativePath aaxFolderPath (aaxFolder, RelativePath::projectFolder);
addToExtraSearchPaths (aaxFolderPath); addToExtraSearchPaths (aaxFolderPath);
addToExtraSearchPaths (aaxFolderPath.getChildFile ("Interfaces")); addToExtraSearchPaths (aaxFolderPath.getChildFile ("Interfaces"));


+ 3
- 6
extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h View File

@@ -83,7 +83,6 @@ public:
virtual bool canCopeWithDuplicateFiles() = 0; virtual bool canCopeWithDuplicateFiles() = 0;
virtual bool supportsUserDefinedConfigurations() const = 0; // false if exporter only supports two configs Debug and Release virtual bool supportsUserDefinedConfigurations() const = 0; // false if exporter only supports two configs Debug and Release
virtual void updateDeprecatedProjectSettingsInteractively(); virtual void updateDeprecatedProjectSettingsInteractively();
virtual void initialiseDependencyPathValues() {}
// IDE targeted by exporter // IDE targeted by exporter
virtual bool isXcode() const = 0; virtual bool isXcode() const = 0;
@@ -154,9 +153,9 @@ public:
bool shouldUseGNUExtensions() const { return gnuExtensionsValue.get();} bool shouldUseGNUExtensions() const { return gnuExtensionsValue.get();}
Value getVST3PathValue() const { return vst3Path; }
Value getRTASPathValue() const { return rtasPath; }
Value getAAXPathValue() const { return aaxPath; }
String getGlobalVST3PathString() const { return getAppSettings().getStoredPath (Ids::vst3Path).toString(); }
String getGlobalRTASPathString() const { return getAppSettings().getStoredPath (Ids::rtasPath).toString(); }
String getGlobalAAXPathString() const { return getAppSettings().getStoredPath (Ids::aaxPath).toString(); }
// NB: this is the path to the parent "modules" folder that contains the named module, not the // NB: this is the path to the parent "modules" folder that contains the named module, not the
// module folder itself. // module folder itself.
@@ -369,7 +368,6 @@ protected:
const ProjectType& projectType; const ProjectType& projectType;
const String projectName; const String projectName;
const File projectFolder; const File projectFolder;
Value vst3Path, rtasPath, aaxPath; // these must be initialised in the specific exporter c'tors!
ValueWithDefault targetLocationValue, extraCompilerFlagsValue, extraLinkerFlagsValue, externalLibrariesValue, ValueWithDefault targetLocationValue, extraCompilerFlagsValue, extraLinkerFlagsValue, externalLibrariesValue,
userNotesValue, gnuExtensionsValue, bigIconValue, smallIconValue, extraPPDefsValue; userNotesValue, gnuExtensionsValue, bigIconValue, smallIconValue, extraPPDefsValue;
@@ -441,7 +439,6 @@ private:
: name + suffix; : name + suffix;
} }
void createDependencyPathProperties (PropertyListBuilder&);
void createIconProperties (PropertyListBuilder&); void createIconProperties (PropertyListBuilder&);
void addVSTPathsIfPluginOrHost(); void addVSTPathsIfPluginOrHost();
void addCommonAudioPluginSettings(); void addCommonAudioPluginSettings();


+ 0
- 2
extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.cpp View File

@@ -171,8 +171,6 @@ void ProjectSaver::writeProjects (const OwnedArray<LibraryModule>& modules, cons
auto* exporter = exporters.add (exp.exporter.release()); auto* exporter = exporters.add (exp.exporter.release());
exporter->initialiseDependencyPathValues();
if (exporter->getTargetFolder().createDirectory()) if (exporter->getTargetFolder().createDirectory())
{ {
if (exporter->isCLion()) if (exporter->isCLion())


Loading…
Cancel
Save