mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Projucer: Fixed module dependency checker
This commit is contained in:
parent
0c3057eb7e
commit
b6e88694d1
2 changed files with 17 additions and 20 deletions
|
|
@ -105,6 +105,14 @@ File ModuleDescription::getHeader() const
|
|||
return File();
|
||||
}
|
||||
|
||||
StringArray ModuleDescription::getDependencies() const
|
||||
{
|
||||
StringArray deps = StringArray::fromTokens (moduleInfo ["dependencies"].toString(), " \t;,", "\"'");
|
||||
deps.trim();
|
||||
deps.removeEmptyStrings();
|
||||
return deps;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
ModuleList::ModuleList()
|
||||
{
|
||||
|
|
@ -127,6 +135,7 @@ const ModuleDescription* ModuleList::getModuleWithID (const String& moduleID) co
|
|||
for (int i = 0; i < modules.size(); ++i)
|
||||
{
|
||||
ModuleDescription* m = modules.getUnchecked(i);
|
||||
|
||||
if (m->getID() == moduleID)
|
||||
return m;
|
||||
}
|
||||
|
|
@ -694,25 +703,12 @@ static void getDependencies (Project& project, const String& moduleID, StringArr
|
|||
{
|
||||
ModuleDescription info (project.getModules().getModuleInfo (moduleID));
|
||||
|
||||
if (info.isValid())
|
||||
for (auto uid : info.getDependencies())
|
||||
{
|
||||
const var depsArray (info.moduleInfo ["dependencies"]);
|
||||
|
||||
if (const Array<var>* const deps = depsArray.getArray())
|
||||
if (! dependencies.contains (uid, true))
|
||||
{
|
||||
for (int i = 0; i < deps->size(); ++i)
|
||||
{
|
||||
const var& d = deps->getReference(i);
|
||||
|
||||
String uid (d [Ids::ID].toString());
|
||||
String version (d [Ids::version].toString());
|
||||
|
||||
if (! dependencies.contains (uid, true))
|
||||
{
|
||||
dependencies.add (uid);
|
||||
getDependencies (project, uid, dependencies);
|
||||
}
|
||||
}
|
||||
dependencies.add (uid);
|
||||
getDependencies (project, uid, dependencies);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -722,9 +718,9 @@ StringArray EnabledModuleList::getExtraDependenciesNeeded (const String& moduleI
|
|||
StringArray dependencies, extraDepsNeeded;
|
||||
getDependencies (project, moduleID, dependencies);
|
||||
|
||||
for (int i = 0; i < dependencies.size(); ++i)
|
||||
if ((! isModuleEnabled (dependencies[i])) && dependencies[i] != moduleID)
|
||||
extraDepsNeeded.add (dependencies[i]);
|
||||
for (auto dep : dependencies)
|
||||
if (dep != moduleID && ! isModuleEnabled (dep))
|
||||
extraDepsNeeded.add (dep);
|
||||
|
||||
return extraDepsNeeded;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ struct ModuleDescription
|
|||
String getLicense() const { return moduleInfo [Ids::license].toString(); }
|
||||
String getPreprocessorDefs() const { return moduleInfo [Ids::defines].toString(); }
|
||||
String getExtraSearchPaths() const { return moduleInfo [Ids::searchpaths].toString(); }
|
||||
StringArray getDependencies() const;
|
||||
|
||||
File getFolder() const { jassert (moduleFolder != File()); return moduleFolder; }
|
||||
File getHeader() const;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue