Browse Source

BUG: fix for 4186, kdevelop adding file twice

Bill Hoffman 19 years ago
parent
commit
bd531d3fae

+ 1 - 2
Source/CMakeLists.txt

@@ -175,8 +175,7 @@ SET(SRCS
 # Kdevelop only works on UNIX and not windows
 IF(UNIX)
   SET(SRCS ${SRCS}
-    cmGlobalKdevelopGenerator.cxx
-    cmLocalKdevelopGenerator.cxx)
+    cmGlobalKdevelopGenerator.cxx)
 ENDIF(UNIX)
 # XCode only works on apple
 IF(APPLE)

+ 4 - 2
Source/cmGlobalKdevelopGenerator.cxx

@@ -17,7 +17,7 @@
 =========================================================================*/
 
 #include "cmGlobalKdevelopGenerator.h"
-#include "cmLocalKdevelopGenerator.h"
+#include "cmLocalUnixMakefileGenerator3.h"
 #include "cmMakefile.h"
 #include "cmake.h"
 #include "cmSourceFile.h"
@@ -36,7 +36,8 @@ cmGlobalKdevelopGenerator::cmGlobalKdevelopGenerator()
 ///! Create a local generator appropriate to this Global Generator
 cmLocalGenerator *cmGlobalKdevelopGenerator::CreateLocalGenerator()
 {
-  cmLocalGenerator *lg = new cmLocalKdevelopGenerator;
+  cmLocalUnixMakefileGenerator3 *lg = new cmLocalUnixMakefileGenerator3;
+  lg->SetForceVerboseMakefiles(true);
   lg->SetGlobalGenerator(this);
   return lg;
 }
@@ -185,6 +186,7 @@ bool cmGlobalKdevelopGenerator
             hname += *ext;
             if(cmSystemTools::FileExists(hname.c_str()))
               {
+              cmSystemTools::ReplaceString(hname, projectDir.c_str(), "");
               files.insert(hname);
               break;
               }

+ 0 - 41
Source/cmLocalKdevelopGenerator.cxx

@@ -1,41 +0,0 @@
-/*=========================================================================
-
-  Program:   CMake - Cross-Platform Makefile Generator
-  Module:    $RCSfile$
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-  Copyright (c) 2002 Kitware, Inc., Insight Consortium.  All rights reserved.
-  Copyright (c) 2004 Alexander Neundorf, [email protected]. All rights reserved.
-  See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
-
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
-
-=========================================================================*/
-#include "cmGlobalGenerator.h"
-#include "cmLocalKdevelopGenerator.h"
-#include "cmMakefile.h"
-#include "cmSystemTools.h"
-#include "cmSourceFile.h"
-#include "cmCacheManager.h"
-#include "cmGeneratedFileStream.h"
-#include "cmake.h"
-#include <cmsys/RegularExpression.hxx>
-
-
-cmLocalKdevelopGenerator::cmLocalKdevelopGenerator()
-  :cmLocalUnixMakefileGenerator3()
-{
-   // KDevelop can itself shorten the output, so it should
-   // always get the full output, otherwise the "full output"
-   // option in kdevelop doesn't make much sense, Alex
-   this->ForceVerboseMakefiles=true;
-}
-
-cmLocalKdevelopGenerator::~cmLocalKdevelopGenerator()
-{
-}
-

+ 0 - 40
Source/cmLocalKdevelopGenerator.h

@@ -1,40 +0,0 @@
-/*=========================================================================
-
-  Program:   CMake - Cross-Platform Makefile Generator
-  Module:    $RCSfile$
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-  Copyright (c) 2002 Kitware, Inc., Insight Consortium.  All rights reserved.
-  Copyright (c) 2004 Alexander Neundorf, [email protected]. All rights reserved.
-  See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
-
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef cmLocalKdevelopGenerator_h
-#define cmLocalKdevelopGenerator_h
-
-#include "cmLocalUnixMakefileGenerator3.h"
-
-class cmDependInformation;
-class cmMakeDepend;
-class cmTarget;
-class cmSourceFile;
-
-/** \class cmLocalKdevelopGenerator
- */
-class cmLocalKdevelopGenerator : public cmLocalUnixMakefileGenerator3
-{
-public:
-  ///! Set cache only and recurse to false by default.
-  cmLocalKdevelopGenerator();
-
-  virtual ~cmLocalKdevelopGenerator();
-
-};
-
-#endif

+ 9 - 25
Source/cmLocalUnixMakefileGenerator3.h

@@ -51,18 +51,6 @@ public:
   virtual void Generate();
 
   
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
   // this returns the relative path between the HomeOutputDirectory and this
   // local generators StartOutputDirectory
   const std::string &GetHomeRelativeOutputPath();
@@ -135,6 +123,15 @@ public:
    */
   void SetSilentNoColon(bool v)  {this->SilentNoColon = v;}
 
+  /**
+   * If set to true, the CMake variable CMAKE_VERBOSE_MAKEFILES doesn't have
+   * anymore. Set it to true when writing a generator where short output
+   * doesn't make sense, e.g. because the full output is parsed by an
+   * IDE/editor.
+   */
+  void SetForceVerboseMakefiles(bool enable) 
+    {this->ForceVerboseMakefiles=enable;}
+
   /**
    * Set the command to use for native make shell echo.  The value
    * should include all parts of the command up to the beginning of
@@ -267,19 +264,6 @@ protected:
   void WriteDirectoryInformationFile();
 
 
-  
-
-
-
-
-
-
-
-
-
-
-
-
   // write the depend info 
   void WriteDependLanguageInfo(std::ostream& cmakefileStream, cmTarget &tgt);