ENH: do not remove executables and dll's before linking them so that incremental links work, incremental links are still broken for vs 2005 and greater because of the manifest stuff
This commit is contained in:
parent
5c4eadba23
commit
0fc4d10e38
|
@ -329,18 +329,6 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
|
||||||
cmLocalGenerator::UNCHANGED));
|
cmLocalGenerator::UNCHANGED));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add a command to remove any existing files for this executable.
|
|
||||||
std::vector<std::string> commands1;
|
|
||||||
this->LocalGenerator->AppendCleanCommand(commands1, exeCleanFiles,
|
|
||||||
*this->Target, "target");
|
|
||||||
this->LocalGenerator->CreateCDCommand
|
|
||||||
(commands1,
|
|
||||||
this->Makefile->GetStartOutputDirectory(),
|
|
||||||
this->Makefile->GetHomeOutputDirectory());
|
|
||||||
|
|
||||||
commands.insert(commands.end(), commands1.begin(), commands1.end());
|
|
||||||
commands1.clear();
|
|
||||||
|
|
||||||
// Add the pre-build and pre-link rules building but not when relinking.
|
// Add the pre-build and pre-link rules building but not when relinking.
|
||||||
if(!relink)
|
if(!relink)
|
||||||
{
|
{
|
||||||
|
@ -356,6 +344,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
|
||||||
linkRuleVar += "_LINK_EXECUTABLE";
|
linkRuleVar += "_LINK_EXECUTABLE";
|
||||||
std::string linkRule =
|
std::string linkRule =
|
||||||
this->Makefile->GetRequiredDefinition(linkRuleVar.c_str());
|
this->Makefile->GetRequiredDefinition(linkRuleVar.c_str());
|
||||||
|
std::vector<std::string> commands1;
|
||||||
cmSystemTools::ExpandListArgument(linkRule, commands1);
|
cmSystemTools::ExpandListArgument(linkRule, commands1);
|
||||||
if(this->Target->GetPropertyAsBool("ENABLE_EXPORTS"))
|
if(this->Target->GetPropertyAsBool("ENABLE_EXPORTS"))
|
||||||
{
|
{
|
||||||
|
|
|
@ -643,16 +643,20 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Add a command to remove any existing files for this library.
|
|
||||||
std::vector<std::string> commands1;
|
std::vector<std::string> commands1;
|
||||||
this->LocalGenerator->AppendCleanCommand(commands1, libCleanFiles,
|
// Add a command to remove any existing files for this library.
|
||||||
*this->Target, "target");
|
// for static libs only
|
||||||
this->LocalGenerator->CreateCDCommand
|
if(this->Target->GetType() == cmTarget::STATIC_LIBRARY)
|
||||||
(commands1,
|
{
|
||||||
this->Makefile->GetStartOutputDirectory(),
|
this->LocalGenerator->AppendCleanCommand(commands1, libCleanFiles,
|
||||||
this->Makefile->GetHomeOutputDirectory());
|
*this->Target, "target");
|
||||||
commands.insert(commands.end(), commands1.begin(), commands1.end());
|
this->LocalGenerator->CreateCDCommand
|
||||||
commands1.clear();
|
(commands1,
|
||||||
|
this->Makefile->GetStartOutputDirectory(),
|
||||||
|
this->Makefile->GetHomeOutputDirectory());
|
||||||
|
commands.insert(commands.end(), commands1.begin(), commands1.end());
|
||||||
|
commands1.clear();
|
||||||
|
}
|
||||||
|
|
||||||
// Add the pre-build and pre-link rules building but not when relinking.
|
// Add the pre-build and pre-link rules building but not when relinking.
|
||||||
if(!relink)
|
if(!relink)
|
||||||
|
|
Loading…
Reference in New Issue