[cmake-commits] king committed cmDependsFortran.cxx 1.33 1.34 cmLocalUnixMakefileGenerator3.cxx 1.227 1.228

cmake-commits at cmake.org cmake-commits at cmake.org
Fri Dec 28 11:50:16 EST 2007


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

Modified Files:
	cmDependsFortran.cxx cmLocalUnixMakefileGenerator3.cxx 
Log Message:
ENH: Add per-language clean rule generation to cmake_clean.cmake files to include cmake_clean_<lang>.cmake files generated by dependency scanning.  Add Fortran module file and timestamp cleaning rules.


Index: cmDependsFortran.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmDependsFortran.cxx,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- cmDependsFortran.cxx	28 Dec 2007 16:49:59 -0000	1.33
+++ cmDependsFortran.cxx	28 Dec 2007 16:50:14 -0000	1.34
@@ -219,6 +219,27 @@
     {
     fiStream << " " << *i << "\n";
     }
+
+  // Create a script to clean the modules.
+  if(!provides.empty())
+    {
+    std::string fcName = this->TargetDirectory;
+    fcName += "/cmake_clean_Fortran.cmake";
+    cmGeneratedFileStream fcStream(fcName.c_str());
+    fcStream << "# Remove fortran modules provided by this target.\n";
+    fcStream << "FILE(REMOVE\n";
+    for(std::set<cmStdString>::const_iterator i = provides.begin();
+        i != provides.end(); ++i)
+      {
+      std::string mod_upper = cmSystemTools::UpperCase(*i);
+      std::string mod_lower = *i;
+      fcStream << " \"" << mod_lower << ".mod\""
+               << " \"" << mod_lower << ".mod.stamp\""
+               << " \"" << mod_upper << ".mod\""
+               << " \"" << mod_upper << ".mod.stamp\"\n";
+      }
+    fcStream << "  )\n";
+    }
   return true;
 }
 

Index: cmLocalUnixMakefileGenerator3.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalUnixMakefileGenerator3.cxx,v
retrieving revision 1.227
retrieving revision 1.228
diff -u -d -r1.227 -r1.228
--- cmLocalUnixMakefileGenerator3.cxx	23 Dec 2007 20:03:42 -0000	1.227
+++ cmLocalUnixMakefileGenerator3.cxx	28 Dec 2007 16:50:14 -0000	1.228
@@ -1048,6 +1048,26 @@
       }
     fout << ")\n";
     commands.push_back(remove);
+
+    // For the main clean rule add per-language cleaning.
+    if(!filename)
+      {
+      // Get the set of source languages in the target.
+      std::set<cmStdString> languages;
+      target.GetLanguages(languages);
+      fout << "\n"
+           << "# Per-language clean rules from dependency scanning.\n"
+           << "FOREACH(lang";
+      for(std::set<cmStdString>::const_iterator l = languages.begin();
+          l != languages.end(); ++l)
+        {
+        fout << " " << *l;
+        }
+      fout << ")\n"
+           << "  INCLUDE(" << this->GetTargetDirectory(target)
+           << "/cmake_clean_${lang}.cmake OPTIONAL)\n"
+           << "ENDFOREACH(lang)\n";
+      }
     }
 }
 



More information about the Cmake-commits mailing list