BUG: fix for build order
This commit is contained in:
parent
b9ab2b1932
commit
1de68b46f1
|
@ -23,6 +23,12 @@
|
||||||
#include "cmSourceFile.h"
|
#include "cmSourceFile.h"
|
||||||
#include "cmTarget.h"
|
#include "cmTarget.h"
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
cmMakefileUtilityTargetGenerator::cmMakefileUtilityTargetGenerator()
|
||||||
|
{
|
||||||
|
this->DriveCustomCommandsOnDepends = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void cmMakefileUtilityTargetGenerator::WriteRuleFiles()
|
void cmMakefileUtilityTargetGenerator::WriteRuleFiles()
|
||||||
|
@ -42,10 +48,30 @@ void cmMakefileUtilityTargetGenerator::WriteRuleFiles()
|
||||||
// Utility targets store their rules in pre- and post-build commands.
|
// Utility targets store their rules in pre- and post-build commands.
|
||||||
this->LocalGenerator->AppendCustomDepends
|
this->LocalGenerator->AppendCustomDepends
|
||||||
(depends, this->Target->GetPreBuildCommands());
|
(depends, this->Target->GetPreBuildCommands());
|
||||||
|
|
||||||
|
// Build list of dependencies.
|
||||||
|
std::string relPath = this->LocalGenerator->GetHomeRelativeOutputPath();
|
||||||
|
std::string objTarget;
|
||||||
|
|
||||||
this->LocalGenerator->AppendCustomDepends
|
this->LocalGenerator->AppendCustomDepends
|
||||||
(depends, this->Target->GetPostBuildCommands());
|
(depends, this->Target->GetPostBuildCommands());
|
||||||
|
|
||||||
this->LocalGenerator->AppendCustomCommands
|
this->LocalGenerator->AppendCustomCommands
|
||||||
(commands, this->Target->GetPreBuildCommands());
|
(commands, this->Target->GetPreBuildCommands());
|
||||||
|
|
||||||
|
// Depend on all custom command outputs for sources
|
||||||
|
const std::vector<cmSourceFile*>& sources =
|
||||||
|
this->Target->GetSourceFiles();
|
||||||
|
for(std::vector<cmSourceFile*>::const_iterator source = sources.begin();
|
||||||
|
source != sources.end(); ++source)
|
||||||
|
{
|
||||||
|
if(cmCustomCommand* cc = (*source)->GetCustomCommand())
|
||||||
|
{
|
||||||
|
this->LocalGenerator->AppendCustomCommand(commands, *cc);
|
||||||
|
this->LocalGenerator->AppendCustomDepend(depends, *cc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this->LocalGenerator->AppendCustomCommands
|
this->LocalGenerator->AppendCustomCommands
|
||||||
(commands, this->Target->GetPostBuildCommands());
|
(commands, this->Target->GetPostBuildCommands());
|
||||||
|
|
||||||
|
@ -53,8 +79,7 @@ void cmMakefileUtilityTargetGenerator::WriteRuleFiles()
|
||||||
this->AppendTargetDepends(depends);
|
this->AppendTargetDepends(depends);
|
||||||
|
|
||||||
// Add a dependency on the rule file itself.
|
// Add a dependency on the rule file itself.
|
||||||
std::string relPath = this->LocalGenerator->GetHomeRelativeOutputPath();
|
objTarget = relPath;
|
||||||
std::string objTarget = relPath;
|
|
||||||
objTarget += this->BuildFileName;
|
objTarget += this->BuildFileName;
|
||||||
this->LocalGenerator->AppendRuleDepend(depends, objTarget.c_str());
|
this->LocalGenerator->AppendRuleDepend(depends, objTarget.c_str());
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,8 @@ class cmMakefileUtilityTargetGenerator:
|
||||||
public cmMakefileTargetGenerator
|
public cmMakefileTargetGenerator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
cmMakefileUtilityTargetGenerator();
|
||||||
|
|
||||||
/* the main entry point for this class. Writes the Makefiles associated
|
/* the main entry point for this class. Writes the Makefiles associated
|
||||||
with this target */
|
with this target */
|
||||||
virtual void WriteRuleFiles();
|
virtual void WriteRuleFiles();
|
||||||
|
|
Loading…
Reference in New Issue