|  | @@ -23,8 +23,10 @@
 | 
	
		
			
				|  |  |  #include "cmake.h"
 | 
	
		
			
				|  |  |  #include "cmSourceFile.h"
 | 
	
		
			
				|  |  |  #include "cmGeneratedFileStream.h"
 | 
	
		
			
				|  |  | +#include "cmSystemTools.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include <cmsys/SystemTools.hxx>
 | 
	
		
			
				|  |  | +#include <cmsys/Directory.hxx>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //----------------------------------------------------------------------------
 | 
	
		
			
				|  |  |  void cmGlobalKdevelopGenerator
 | 
	
	
		
			
				|  | @@ -273,6 +275,32 @@ void cmGlobalKdevelopGenerator
 | 
	
		
			
				|  |  |                      const std::string& cmakeFilePattern,
 | 
	
		
			
				|  |  |                      const std::string& fileToOpen)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +  // add all subdirectories to the kdevelop blacklist
 | 
	
		
			
				|  |  | +  // so they are not monitored for added or removed files
 | 
	
		
			
				|  |  | +  // since this is basically handled by adding files to the
 | 
	
		
			
				|  |  | +  // cmake files
 | 
	
		
			
				|  |  | +  this->Blacklist.clear();
 | 
	
		
			
				|  |  | +  cmsys::Directory d;
 | 
	
		
			
				|  |  | +  if (d.Load(projectDir.c_str()))
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    unsigned int i;
 | 
	
		
			
				|  |  | +    size_t numf = d.GetNumberOfFiles();
 | 
	
		
			
				|  |  | +    for (unsigned int i = 0; i < numf; i++)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      std::string nextFile = d.GetFile(i);
 | 
	
		
			
				|  |  | +      if ((nextFile!=".") && (nextFile!=".."))
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +        std::string tmp = projectDir;
 | 
	
		
			
				|  |  | +        tmp += "/";
 | 
	
		
			
				|  |  | +        tmp += nextFile;
 | 
	
		
			
				|  |  | +        if (cmSystemTools::FileIsDirectory(tmp.c_str()))
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +          this->Blacklist.push_back(nextFile);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    std::string filename=outputDir+"/";
 | 
	
		
			
				|  |  |    filename+=projectname+".kdevelop";
 | 
	
		
			
				|  |  |    std::string sessionFilename=outputDir+"/";
 | 
	
	
		
			
				|  | @@ -290,7 +318,7 @@ void cmGlobalKdevelopGenerator
 | 
	
		
			
				|  |  |                                 executable, cmakeFilePattern, 
 | 
	
		
			
				|  |  |                                 fileToOpen, sessionFilename);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -   
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void cmGlobalKdevelopGenerator
 | 
	
	
		
			
				|  | @@ -388,7 +416,7 @@ void cmGlobalKdevelopGenerator
 | 
	
		
			
				|  |  |    // check for a version control system
 | 
	
		
			
				|  |  |    bool hasSvn = cmSystemTools::FileExists((projectDir + "/.svn").c_str());
 | 
	
		
			
				|  |  |    bool hasCvs = cmSystemTools::FileExists((projectDir + "/CVS").c_str());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  |    fout<<"<?xml version = '1.0'?>\n";
 | 
	
		
			
				|  |  |    fout<<"<kdevelop>\n";
 | 
	
		
			
				|  |  |    fout<<"  <general>\n";
 | 
	
	
		
			
				|  | @@ -441,6 +469,16 @@ void cmGlobalKdevelopGenerator
 | 
	
		
			
				|  |  |    fout<<"        <default/>\n";
 | 
	
		
			
				|  |  |    fout<<"      </environments>\n";
 | 
	
		
			
				|  |  |    fout<<"    </make>\n";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  fout<<"    <blacklist>\n";
 | 
	
		
			
				|  |  | +  for(std::vector<std::string>::const_iterator dirIt=this->Blacklist.begin();
 | 
	
		
			
				|  |  | +      dirIt != this->Blacklist.end();
 | 
	
		
			
				|  |  | +      ++dirIt)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    fout<<"      <path>"<<dirIt->c_str()<<"</path>\n";
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  fout<<"    </blacklist>\n";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    fout<<"  </kdevcustomproject>\n";
 | 
	
		
			
				|  |  |    fout<<"  <kdevfilecreate>\n";
 | 
	
		
			
				|  |  |    fout<<"    <filetypes/>\n";
 |