Browse Source

ENH: Create cmCTestVC for VCS interaction

This creates cmCTestVC, the base for a forthcoming class hierarchy to
interact with version control systems.
Brad King 16 years ago
parent
commit
1b8ea27bd1
3 changed files with 99 additions and 0 deletions
  1. 3 0
      Source/CMakeLists.txt
  2. 41 0
      Source/CTest/cmCTestVC.cxx
  3. 55 0
      Source/CTest/cmCTestVC.h

+ 3 - 0
Source/CMakeLists.txt

@@ -342,6 +342,9 @@ SET(CTEST_SRCS cmCTest.cxx
   CTest/cmCTestTestHandler.cxx
   CTest/cmCTestUpdateCommand.cxx
   CTest/cmCTestUpdateHandler.cxx
+
+  CTest/cmCTestVC.cxx
+  CTest/cmCTestVC.h
   )
 
 # Build CTestLib

+ 41 - 0
Source/CTest/cmCTestVC.cxx

@@ -0,0 +1,41 @@
+/*=========================================================================
+
+  Program:   CMake - Cross-Platform Makefile Generator
+  Module:    $RCSfile$
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+  Copyright (c) 2002 Kitware, Inc. 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 "cmCTestVC.h"
+
+#include "cmCTest.h"
+
+//----------------------------------------------------------------------------
+cmCTestVC::cmCTestVC(cmCTest* ct, std::ostream& log): CTest(ct), Log(log)
+{
+}
+
+//----------------------------------------------------------------------------
+cmCTestVC::~cmCTestVC()
+{
+}
+
+//----------------------------------------------------------------------------
+void cmCTestVC::SetCommandLineTool(std::string const& tool)
+{
+  this->CommandLineTool = tool;
+}
+
+//----------------------------------------------------------------------------
+void cmCTestVC::SetSourceDirectory(std::string const& dir)
+{
+  this->SourceDirectory = dir;
+}

+ 55 - 0
Source/CTest/cmCTestVC.h

@@ -0,0 +1,55 @@
+/*=========================================================================
+
+  Program:   CMake - Cross-Platform Makefile Generator
+  Module:    $RCSfile$
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+  Copyright (c) 2002 Kitware, Inc. 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 cmCTestVC_h
+#define cmCTestVC_h
+
+#include "cmStandardIncludes.h"
+
+class cmCTest;
+
+/** \class cmCTestVC
+ * \brief Base class for version control system handlers
+ *
+ */
+class cmCTestVC
+{
+public:
+  /** Construct with a CTest instance and update log stream.  */
+  cmCTestVC(cmCTest* ctest, std::ostream& log);
+
+  virtual ~cmCTestVC();
+
+  /** Command line tool to invoke.  */
+  void SetCommandLineTool(std::string const& tool);
+
+  /** Top-level source directory.  */
+  void SetSourceDirectory(std::string const& dir);
+
+protected:
+
+  // Instance of cmCTest running the script.
+  cmCTest* CTest;
+
+  // A stream to which we write log information.
+  std::ostream& Log;
+
+  // Basic information about the working tree.
+  std::string CommandLineTool;
+  std::string SourceDirectory;
+};
+
+#endif