[cmake-commits] king committed cmGlobalUnixMakefileGenerator3.h 1.37 1.38 cmMakefileUtilityTargetGenerator.cxx 1.3 1.4 cmMakefileExecutableTargetGenerator.cxx 1.22 1.23 cmMakefileLibraryTargetGenerator.cxx 1.28 1.29

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Dec 14 14:30:18 EST 2006


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

Modified Files:
	cmGlobalUnixMakefileGenerator3.h 
	cmMakefileUtilityTargetGenerator.cxx 
	cmMakefileExecutableTargetGenerator.cxx 
	cmMakefileLibraryTargetGenerator.cxx 
Log Message:
ENH: Made cmMakefileTargetGenerator::GlobalGenerator have full type cmGlobalUnixMakefileGenerator3 to give access to all methods.  Fixed broken custom targets with no commands for Borland makefiles when CMAKE_SKIP_RULE_DEPENDENCY is set.


Index: cmMakefileLibraryTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileLibraryTargetGenerator.cxx,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- cmMakefileLibraryTargetGenerator.cxx	16 Oct 2006 22:17:14 -0000	1.28
+++ cmMakefileLibraryTargetGenerator.cxx	14 Dec 2006 19:30:16 -0000	1.29
@@ -17,7 +17,7 @@
 #include "cmMakefileLibraryTargetGenerator.h"
 
 #include "cmGeneratedFileStream.h"
-#include "cmGlobalGenerator.h"
+#include "cmGlobalUnixMakefileGenerator3.h"
 #include "cmLocalUnixMakefileGenerator3.h"
 #include "cmMakefile.h"
 #include "cmSourceFile.h"

Index: cmGlobalUnixMakefileGenerator3.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmGlobalUnixMakefileGenerator3.h,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- cmGlobalUnixMakefileGenerator3.h	29 Aug 2006 16:55:11 -0000	1.37
+++ cmGlobalUnixMakefileGenerator3.h	14 Dec 2006 19:30:16 -0000	1.38
@@ -115,6 +115,9 @@
       no rule.  This is used for multiple output dependencies.  */
   std::string GetEmptyCommandHack() { return this->EmptyCommandsHack; }
 
+  /** Get the fake dependency to use when a rule has no real commands
+      or dependencies.  */
+  std::string GetEmptyRuleHackDepends() { return this->EmptyRuleHackDepends; }
 
   // change the build command for speed
   virtual std::string GenerateBuildCommand

Index: cmMakefileExecutableTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileExecutableTargetGenerator.cxx,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- cmMakefileExecutableTargetGenerator.cxx	16 Oct 2006 22:17:14 -0000	1.22
+++ cmMakefileExecutableTargetGenerator.cxx	14 Dec 2006 19:30:16 -0000	1.23
@@ -17,7 +17,7 @@
 #include "cmMakefileExecutableTargetGenerator.h"
 
 #include "cmGeneratedFileStream.h"
-#include "cmGlobalGenerator.h"
+#include "cmGlobalUnixMakefileGenerator3.h"
 #include "cmLocalUnixMakefileGenerator3.h"
 #include "cmMakefile.h"
 #include "cmSourceFile.h"

Index: cmMakefileUtilityTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileUtilityTargetGenerator.cxx,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- cmMakefileUtilityTargetGenerator.cxx	1 Jun 2006 15:45:51 -0000	1.3
+++ cmMakefileUtilityTargetGenerator.cxx	14 Dec 2006 19:30:16 -0000	1.4
@@ -17,7 +17,7 @@
 #include "cmMakefileUtilityTargetGenerator.h"
 
 #include "cmGeneratedFileStream.h"
-#include "cmGlobalGenerator.h"
+#include "cmGlobalUnixMakefileGenerator3.h"
 #include "cmLocalUnixMakefileGenerator3.h"
 #include "cmMakefile.h"
 #include "cmSourceFile.h"
@@ -58,6 +58,17 @@
   objTarget += this->BuildFileName;
   this->LocalGenerator->AppendRuleDepend(depends, objTarget.c_str());
 
+  // If the rule is empty add the special empty rule dependency needed
+  // by some make tools.
+  if(depends.empty() && commands.empty())
+    {
+    std::string hack = this->GlobalGenerator->GetEmptyRuleHackDepends();
+    if(!hack.empty())
+      {
+      depends.push_back(hack);
+      }
+    }
+
   // Write the rule.
   this->LocalGenerator->WriteMakeRule(*this->BuildFileStream, 0,
                                       this->Target->GetName(),



More information about the Cmake-commits mailing list