diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2007-10-18 13:38:34 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2007-10-18 13:38:34 (GMT) |
commit | 0fc4d10e38a90919604b5e128cb8743ab47cce1b (patch) | |
tree | b16ee52492b0b2f140f8ef9c4ed5b431a18523a2 | |
parent | 5c4eadba23a6341c3cd685f68e8c9b77ef186aea (diff) | |
download | CMake-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.cxx | 13 | ||||
-rw-r--r-- | Source/cmMakefileLibraryTargetGenerator.cxx | 22 |
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) |