|
|
@@ -680,17 +680,17 @@ cmGlobalUnixMakefileGenerator3
|
|
|
cmTargets& targets = lg->GetMakefile()->GetTargets();
|
|
|
for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t)
|
|
|
{
|
|
|
- if((t->second.GetType() == cmTarget::EXECUTABLE) ||
|
|
|
- (t->second.GetType() == cmTarget::STATIC_LIBRARY) ||
|
|
|
- (t->second.GetType() == cmTarget::SHARED_LIBRARY) ||
|
|
|
- (t->second.GetType() == cmTarget::MODULE_LIBRARY) ||
|
|
|
- (t->second.GetType() == cmTarget::UTILITY))
|
|
|
+ // Don't emit the same rule twice (e.g. two targets with the same
|
|
|
+ // simple name)
|
|
|
+ if(t->second.GetName() &&
|
|
|
+ strlen(t->second.GetName()) &&
|
|
|
+ emitted.insert(t->second.GetName()).second)
|
|
|
{
|
|
|
- // Don't emit the same rule twice (e.g. two targets with the same
|
|
|
- // simple name)
|
|
|
- if(t->second.GetName() &&
|
|
|
- strlen(t->second.GetName()) &&
|
|
|
- emitted.insert(t->second.GetName()).second)
|
|
|
+ if((t->second.GetType() == cmTarget::EXECUTABLE) ||
|
|
|
+ (t->second.GetType() == cmTarget::STATIC_LIBRARY) ||
|
|
|
+ (t->second.GetType() == cmTarget::SHARED_LIBRARY) ||
|
|
|
+ (t->second.GetType() == cmTarget::MODULE_LIBRARY) ||
|
|
|
+ (t->second.GetType() == cmTarget::UTILITY))
|
|
|
{
|
|
|
// Add a rule to build the target by name.
|
|
|
lg->WriteDivider(ruleFileStream);
|
|
|
@@ -762,14 +762,10 @@ cmGlobalUnixMakefileGenerator3
|
|
|
lg->WriteMakeRule(ruleFileStream, "fast build rule for target.",
|
|
|
localName.c_str(), depends, commands, true);
|
|
|
}
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if(t->second.GetName() &&
|
|
|
- strlen(t->second.GetName()) &&
|
|
|
- emitted.insert(t->second.GetName()).second)
|
|
|
+ else if(t->second.GetType() == cmTarget::GLOBAL_TARGET)
|
|
|
{
|
|
|
- // Add a fast rule to build the target
|
|
|
+ // Provide a fast target for the global targets that just
|
|
|
+ // forwards to the real target so at least it will work.
|
|
|
depends.clear();
|
|
|
commands.clear();
|
|
|
std::string localName = t->second.GetName();
|