[cmake-commits] hoffman committed cmMakefileExecutableTargetGenerator.cxx 1.36 1.37 cmMakefileLibraryTargetGenerator.cxx 1.47 1.48

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Oct 18 09:38:36 EDT 2007


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv32595

Modified Files:
	cmMakefileExecutableTargetGenerator.cxx 
	cmMakefileLibraryTargetGenerator.cxx 
Log Message:
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


Index: cmMakefileLibraryTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileLibraryTargetGenerator.cxx,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- cmMakefileLibraryTargetGenerator.cxx	10 Oct 2007 15:06:14 -0000	1.47
+++ cmMakefileLibraryTargetGenerator.cxx	18 Oct 2007 13:38:34 -0000	1.48
@@ -643,16 +643,20 @@
     }
 #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)

Index: cmMakefileExecutableTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileExecutableTargetGenerator.cxx,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- cmMakefileExecutableTargetGenerator.cxx	2 Aug 2007 13:37:10 -0000	1.36
+++ cmMakefileExecutableTargetGenerator.cxx	18 Oct 2007 13:38:34 -0000	1.37
@@ -329,18 +329,6 @@
                    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 @@
   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"))
     {



More information about the Cmake-commits mailing list