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

ENH: Added generation of dependencies on the CMake-generated input to gcc-xml so that re-generation of wrappers will occur if a header changes.

Brad King 24 лет назад
Родитель
Сommit
21d634c525
1 измененных файлов с 21 добавлено и 1 удалено
  1. 21 1
      Source/cmCableWrapTclCommand.cxx

+ 21 - 1
Source/cmCableWrapTclCommand.cxx

@@ -42,7 +42,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "cmCacheManager.h"
 #include "cmTarget.h"
 #include "cmGeneratedFileStream.h"
-
+#include "cmMakeDepend.h"
 
 cmCableWrapTclCommand::cmCableWrapTclCommand():
   m_CableClassSet(NULL)
@@ -256,6 +256,26 @@ void cmCableWrapTclCommand::GenerateCableClassFiles(const char* name,
   std::string command = this->GetGccXmlFromCache();
   std::vector<std::string> depends;
   depends.push_back(command);
+
+  // Get the dependencies of the file.
+  cmMakeDepend md;
+  md.SetMakefile(m_Makefile);
+  const cmDependInformation* dependInfo =
+    md.FindDependencies(classCxxName.c_str());
+  if(dependInfo)
+    {
+    for(cmDependInformation::DependencySet::const_iterator d = 
+          dependInfo->m_DependencySet.begin();
+        d != dependInfo->m_DependencySet.end(); ++d)
+      {
+      // Make sure the full path is given.  If not, the dependency was
+      // not found.
+      if((*d)->m_FullPath != "")
+        {
+        depends.push_back((*d)->m_FullPath);
+        }
+      }
+    }
   
   std::string commandArgs = this->GetGccXmlFlagsFromCache();
   commandArgs += " ";