[Cmake-commits] [cmake-commits] king committed cmLocalVisualStudio6Generator.cxx 1.142 1.143 cmLocalVisualStudio7Generator.cxx 1.224 1.225 cmSourceGroup.cxx 1.19 1.20 cmSourceGroup.h 1.19 1.20

cmake-commits at cmake.org cmake-commits at cmake.org
Fri May 16 16:56:43 EDT 2008


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

Modified Files:
	cmLocalVisualStudio6Generator.cxx 
	cmLocalVisualStudio7Generator.cxx cmSourceGroup.cxx 
	cmSourceGroup.h 
Log Message:
COMP: Fix build with concept checking of STL.

  - Fix cmSourceGroup to not use std::vector with an incomplete type.


Index: cmSourceGroup.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmSourceGroup.cxx,v
retrieving revision 1.19
retrieving revision 1.20
diff -C 2 -d -r1.19 -r1.20
*** cmSourceGroup.cxx	24 Aug 2007 18:21:49 -0000	1.19
--- cmSourceGroup.cxx	16 May 2008 20:56:41 -0000	1.20
***************
*** 17,27 ****
--- 17,61 ----
  #include "cmSourceGroup.h"
  
+ class cmSourceGroupInternals
+ {
+ public:
+   std::vector<cmSourceGroup> GroupChildren;
+ };
+ 
  //----------------------------------------------------------------------------
  cmSourceGroup::cmSourceGroup(const char* name, const char* regex): Name(name)
  {
+   this->Internal = new cmSourceGroupInternals;
    this->SetGroupRegex(regex);
  }
  
  //----------------------------------------------------------------------------
+ cmSourceGroup::~cmSourceGroup()
+ {
+   delete this->Internal;
+ }
+ 
+ //----------------------------------------------------------------------------
+ cmSourceGroup::cmSourceGroup(cmSourceGroup const& r)
+ {
+   this->Name = r.Name;
+   this->GroupRegex = r.GroupRegex;
+   this->GroupFiles = r.GroupFiles;
+   this->SourceFiles = r.SourceFiles;
+   this->Internal = new cmSourceGroupInternals(*r.Internal);
+ }
+ 
+ //----------------------------------------------------------------------------
+ cmSourceGroup& cmSourceGroup::operator=(cmSourceGroup const& r)
+ {
+   this->Name = r.Name;
+   this->GroupRegex = r.GroupRegex;
+   this->GroupFiles = r.GroupFiles;
+   this->SourceFiles = r.SourceFiles;
+   *(this->Internal) = *(r.Internal);
+   return *this;
+ }
+ 
+ //----------------------------------------------------------------------------
  void cmSourceGroup::SetGroupRegex(const char* regex)
  {
***************
*** 86,90 ****
  void cmSourceGroup::AddChild(cmSourceGroup child)
  {
!   this->GroupChildren.push_back(child);
  }
  
--- 120,124 ----
  void cmSourceGroup::AddChild(cmSourceGroup child)
  {
!   this->Internal->GroupChildren.push_back(child);
  }
  
***************
*** 93,98 ****
  {
    // initializing iterators
!   std::vector<cmSourceGroup>::iterator iter = this->GroupChildren.begin();
!   std::vector<cmSourceGroup>::iterator end = this->GroupChildren.end();
  
    // st
--- 127,134 ----
  {
    // initializing iterators
!   std::vector<cmSourceGroup>::iterator iter =
!     this->Internal->GroupChildren.begin();
!   std::vector<cmSourceGroup>::iterator end =
!     this->Internal->GroupChildren.end();
  
    // st
***************
*** 115,120 ****
  {
    // initializing iterators
!   std::vector<cmSourceGroup>::iterator iter = this->GroupChildren.begin();
!   std::vector<cmSourceGroup>::iterator end = this->GroupChildren.end();
  
    if(this->MatchesFiles(name))
--- 151,158 ----
  {
    // initializing iterators
!   std::vector<cmSourceGroup>::iterator iter =
!     this->Internal->GroupChildren.begin();
!   std::vector<cmSourceGroup>::iterator end =
!     this->Internal->GroupChildren.end();
  
    if(this->MatchesFiles(name))
***************
*** 137,142 ****
  {
    // initializing iterators
!   std::vector<cmSourceGroup>::iterator iter = this->GroupChildren.begin();
!   std::vector<cmSourceGroup>::iterator end = this->GroupChildren.end();
  
    if(this->MatchesRegex(name))
--- 175,182 ----
  {
    // initializing iterators
!   std::vector<cmSourceGroup>::iterator iter =
!     this->Internal->GroupChildren.begin();
!   std::vector<cmSourceGroup>::iterator end =
!     this->Internal->GroupChildren.end();
  
    if(this->MatchesRegex(name))
***************
*** 155,160 ****
  }
  
! std::vector<cmSourceGroup> cmSourceGroup::GetGroupChildren() const
  {
!   return this->GroupChildren;
  }
--- 195,201 ----
  }
  
! std::vector<cmSourceGroup> const&
! cmSourceGroup::GetGroupChildren() const
  {
!   return this->Internal->GroupChildren;
  }

Index: cmLocalVisualStudio7Generator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.cxx,v
retrieving revision 1.224
retrieving revision 1.225
diff -C 2 -d -r1.224 -r1.225
*** cmLocalVisualStudio7Generator.cxx	30 Apr 2008 17:26:03 -0000	1.224
--- cmLocalVisualStudio7Generator.cxx	16 May 2008 20:56:41 -0000	1.225
***************
*** 1474,1478 ****
      }
  
!   std::vector<cmSourceGroup> children  = sg->GetGroupChildren();
  
    for(unsigned int i=0;i<children.size();++i)
--- 1474,1478 ----
      }
  
!   std::vector<cmSourceGroup> const& children  = sg->GetGroupChildren();
  
    for(unsigned int i=0;i<children.size();++i)

Index: cmSourceGroup.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmSourceGroup.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -C 2 -d -r1.19 -r1.20
*** cmSourceGroup.h	15 Mar 2006 16:02:07 -0000	1.19
--- cmSourceGroup.h	16 May 2008 20:56:41 -0000	1.20
***************
*** 23,26 ****
--- 23,28 ----
  class cmSourceFile;
  
+ class cmSourceGroupInternals;
+ 
  /** \class cmSourceGroup
   * \brief Hold a group of sources as specified by a SOURCE_GROUP command.
***************
*** 37,41 ****
  public:
    cmSourceGroup(const char* name, const char* regex);
!   ~cmSourceGroup() {}
    
    /**
--- 39,45 ----
  public:
    cmSourceGroup(const char* name, const char* regex);
!   cmSourceGroup(cmSourceGroup const& r);
!   ~cmSourceGroup();
!   cmSourceGroup& operator=(cmSourceGroup const&);
    
    /**
***************
*** 98,102 ****
    std::vector<const cmSourceFile*>& GetSourceFiles();
    
!   std::vector<cmSourceGroup> GetGroupChildren() const;
  private:
    /**
--- 102,106 ----
    std::vector<const cmSourceFile*>& GetSourceFiles();
    
!   std::vector<cmSourceGroup> const& GetGroupChildren() const;
  private:
    /**
***************
*** 121,125 ****
    std::vector<const cmSourceFile*> SourceFiles;
  
!   std::vector<cmSourceGroup> GroupChildren;
  };
  
--- 125,129 ----
    std::vector<const cmSourceFile*> SourceFiles;
  
!   cmSourceGroupInternals* Internal;
  };
  

Index: cmLocalVisualStudio6Generator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalVisualStudio6Generator.cxx,v
retrieving revision 1.142
retrieving revision 1.143
diff -C 2 -d -r1.142 -r1.143
*** cmLocalVisualStudio6Generator.cxx	21 Apr 2008 22:24:56 -0000	1.142
--- cmLocalVisualStudio6Generator.cxx	16 May 2008 20:56:40 -0000	1.143
***************
*** 533,537 ****
      }
  
!   std::vector<cmSourceGroup> children  = sg->GetGroupChildren();
  
    for(unsigned int i=0;i<children.size();++i)
--- 533,537 ----
      }
  
!   std::vector<cmSourceGroup> const& children  = sg->GetGroupChildren();
  
    for(unsigned int i=0;i<children.size();++i)



More information about the Cmake-commits mailing list