Просмотр исходного кода

add cleaning of QT generated files when make clean is used

Franck Bettinger 24 лет назад
Родитель
Сommit
4153857a1e
2 измененных файлов с 30 добавлено и 9 удалено
  1. 12 4
      Source/cmQTWrapCPPCommand.cxx
  2. 18 5
      Source/cmUnixMakefileGenerator.cxx

+ 12 - 4
Source/cmQTWrapCPPCommand.cxx

@@ -61,7 +61,8 @@ bool cmQTWrapCPPCommand::InitialPass(std::vector<std::string> const& args)
   
   if(cmSystemTools::IsOff(QT_WRAP_CPP_value))
     {
-    return true;
+    this->SetError("called with QT_WRAP_CPP off : ");
+    return false;
     }
 
   // what is the current source dir
@@ -96,7 +97,8 @@ bool cmQTWrapCPPCommand::InitialPass(std::vector<std::string> const& args)
         std::string newName = "moc_" + curr.GetSourceName();
         file.SetName(newName.c_str(), m_Makefile->GetCurrentOutputDirectory(),
                      "cxx",false);
-        std::string hname = cdir + "/" + curr.GetSourceName() + ".h";
+        std::string hname = cdir + "/" + curr.GetSourceName() + "." +
+            curr.GetSourceExtension();
         m_WrapHeaders.push_back(hname);
         // add starting depends
         file.GetDepends().push_back(hname);
@@ -111,7 +113,8 @@ bool cmQTWrapCPPCommand::InitialPass(std::vector<std::string> const& args)
 
 void cmQTWrapCPPCommand::FinalPass() 
 {
-  // first we add the rules for all the .h to Java.cxx files
+
+  // first we add the rules for all the .h to Moc files
   int lastClass = m_WrapClasses.size();
   std::vector<std::string> depends;
   std::string moc_exe = "${QT_MOC_EXE}";
@@ -120,6 +123,8 @@ void cmQTWrapCPPCommand::FinalPass()
   // wrap all the .h files
   depends.push_back(moc_exe);
 
+  std::string moc_list(""); 
+
   for(int classNum = 0; classNum < lastClass; classNum++)
     {
     // Add output to build list
@@ -129,6 +134,8 @@ void cmQTWrapCPPCommand::FinalPass()
     std::string res = m_Makefile->GetCurrentOutputDirectory();
     res += "/";
     res += m_WrapClasses[classNum].GetSourceName() + ".cxx";
+
+    moc_list = moc_list + " " + res;
     
     std::vector<std::string> args;
     args.push_back("-o");
@@ -141,7 +148,8 @@ void cmQTWrapCPPCommand::FinalPass()
 
     }
 
-  
+  m_Makefile->AddDefinition("GENERATED_QT_FILES",moc_list.c_str());
+
 }
 
 

+ 18 - 5
Source/cmUnixMakefileGenerator.cxx

@@ -1335,11 +1335,24 @@ void cmUnixMakefileGenerator::OutputMakeRules(std::ostream& fout)
                        "all",
                        "cmake.depends $(TARGETS) $(SUBDIR_BUILD)",
                        0);
-  this->OutputMakeRule(fout, 
-                       "remove generated files",
-                       "clean",
-                       "$(SUBDIR_CLEAN)",
-                       "rm -f $(CLEAN_OBJECT_FILES) $(EXECUTABLES) $(TARGETS)");
+  if (m_Makefile->IsOn("QT_WRAP_CPP"))
+    { 
+    this->OutputMakeRule(fout, 
+                         "remove generated files",
+                         "clean",
+                         "$(SUBDIR_CLEAN)",
+                         "rm -f $(CLEAN_OBJECT_FILES) $(EXECUTABLES)"
+                         " $(TARGETS) ${GENERATED_QT_FILES}");
+    }
+  else  
+    {
+    this->OutputMakeRule(fout, 
+                         "remove generated files",
+                         "clean",
+                         "$(SUBDIR_CLEAN)",
+                         "rm -f $(CLEAN_OBJECT_FILES) $(EXECUTABLES)"
+                         " $(TARGETS)");
+    }
   this->OutputMakeRule(fout, 
                        "Rule to build the cmake.depends and Makefile as side effect",
                        "cmake.depends",