mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-20 01:14:20 +00:00
Projucer: Added phony targets to Projucer generated makefiles
This commit is contained in:
parent
95aa44bbfc
commit
762e96f91d
1 changed files with 37 additions and 3 deletions
|
|
@ -222,6 +222,11 @@ public:
|
|||
return String ("$(JUCE_OUTDIR)/$(JUCE_TARGET_") + getTargetVarName() + String (")");
|
||||
}
|
||||
|
||||
String getPhonyName() const
|
||||
{
|
||||
return String (getName()).upToFirstOccurrenceOf (" ", false, false);
|
||||
}
|
||||
|
||||
void writeTargetLine (OutputStream& out, const bool useLinuxPackages)
|
||||
{
|
||||
jassert (type != AggregateTarget);
|
||||
|
|
@ -522,6 +527,8 @@ private:
|
|||
if (target->type == ProjectType::Target::AggregateTarget)
|
||||
{
|
||||
StringArray dependencies;
|
||||
MemoryOutputStream subTargetLines;
|
||||
|
||||
for (int j = 0; j < n; ++j)
|
||||
{
|
||||
if (i == j) continue;
|
||||
|
|
@ -529,14 +536,25 @@ private:
|
|||
if (MakefileTarget* dependency = targets.getUnchecked (j))
|
||||
{
|
||||
if (dependency->type != ProjectType::Target::SharedCodeTarget)
|
||||
dependencies.add (dependency->getBuildProduct());
|
||||
{
|
||||
auto phonyName = dependency->getPhonyName();
|
||||
|
||||
subTargetLines << phonyName << " : " << dependency->getBuildProduct() << newLine;
|
||||
dependencies.add (phonyName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
out << "all : " << dependencies.joinIntoString (" ") << newLine << newLine;
|
||||
out << subTargetLines.toString() << newLine << newLine;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (! getProject().getProjectType().isAudioPlugin())
|
||||
out << "all : " << target->getBuildProduct() << newLine << newLine;
|
||||
|
||||
target->writeTargetLine (out, useLinuxPackages);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -661,8 +679,7 @@ private:
|
|||
for (auto target : targets)
|
||||
target->writeObjects (out);
|
||||
|
||||
out << ".PHONY: clean all" << newLine
|
||||
<< newLine;
|
||||
out << getPhonyTargetLine() << newLine << newLine;
|
||||
|
||||
StringArray packages;
|
||||
packages.addTokens (getExtraPkgConfigString(), " ", "\"'");
|
||||
|
|
@ -720,6 +737,23 @@ private:
|
|||
+ "_" + String::toHexString (file.toUnixStyle().hashCode()) + ".o";
|
||||
}
|
||||
|
||||
String getPhonyTargetLine() const
|
||||
{
|
||||
MemoryOutputStream phonyTargetLine;
|
||||
|
||||
phonyTargetLine << ".PHONY: clean all";
|
||||
|
||||
if (! getProject().getProjectType().isAudioPlugin())
|
||||
return phonyTargetLine.toString();
|
||||
|
||||
for (auto target : targets)
|
||||
if (target->type != ProjectType::Target::SharedCodeTarget
|
||||
&& target->type != ProjectType::Target::AggregateTarget)
|
||||
phonyTargetLine << " " << target->getPhonyName();
|
||||
|
||||
return phonyTargetLine.toString();
|
||||
}
|
||||
|
||||
void initialiseDependencyPathValues()
|
||||
{
|
||||
vst3Path.referTo (Value (new DependencyPathValueSource (getSetting (Ids::vst3Folder),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue