summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2007-10-18 13:38:34 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2007-10-18 13:38:34 (GMT)
commit0fc4d10e38a90919604b5e128cb8743ab47cce1b (patch)
treeb16ee52492b0b2f140f8ef9c4ed5b431a18523a2
parent5c4eadba23a6341c3cd685f68e8c9b77ef186aea (diff)
downloadCMake-0fc4d10e38a90919604b5e128cb8743ab47cce1b.zip
CMake-0fc4d10e38a90919604b5e128cb8743ab47cce1b.tar.gz
CMake-0fc4d10e38a90919604b5e128cb8743ab47cce1b.tar.bz2
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
-rw-r--r--Source/cmMakefileExecutableTargetGenerator.cxx13
-rw-r--r--Source/cmMakefileLibraryTargetGenerator.cxx22
2 files changed, 14 insertions, 21 deletions
diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx
index 17b2578..195a34b 100644
--- a/Source/cmMakefileExecutableTargetGenerator.cxx
+++ b/Source/cmMakefileExecutableTargetGenerator.cxx
@@ -329,18 +329,6 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
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.
if(!relink)
{
@@ -356,6 +344,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
linkRuleVar += "_LINK_EXECUTABLE";
std::string linkRule =
this->Makefile->GetRequiredDefinition(linkRuleVar.c_str());
+ std::vector<std::string> commands1;
cmSystemTools::ExpandListArgument(linkRule, commands1);
if(this->Target->GetPropertyAsBool("ENABLE_EXPORTS"))
{
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index a2aedd5..8a2ade8 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -643,16 +643,20 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
}
#endif
- // Add a command to remove any existing files for this library.
std::vector<std::string> commands1;
- this->LocalGenerator->AppendCleanCommand(commands1, libCleanFiles,
- *this->Target, "target");
- this->LocalGenerator->CreateCDCommand
- (commands1,
- this->Makefile->GetStartOutputDirectory(),
- this->Makefile->GetHomeOutputDirectory());
- commands.insert(commands.end(), commands1.begin(), commands1.end());
- commands1.clear();
+ // Add a command to remove any existing files for this library.
+ // for static libs only
+ if(this->Target->GetType() == cmTarget::STATIC_LIBRARY)
+ {
+ this->LocalGenerator->AppendCleanCommand(commands1, libCleanFiles,
+ *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.
if(!relink)