From 1b8ea27bd10c9ac94d190a3eb9be5fa0c955b453 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 24 Feb 2009 10:39:28 -0500 Subject: ENH: Create cmCTestVC for VCS interaction This creates cmCTestVC, the base for a forthcoming class hierarchy to interact with version control systems. --- Source/CMakeLists.txt | 3 +++ Source/CTest/cmCTestVC.cxx | 41 ++++++++++++++++++++++++++++++++++ Source/CTest/cmCTestVC.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 Source/CTest/cmCTestVC.cxx create mode 100644 Source/CTest/cmCTestVC.h diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 6e8d987..43731c2 100644 --- a/Source/CMakeLists.txt +++ b/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 diff --git a/Source/CTest/cmCTestVC.cxx b/Source/CTest/cmCTestVC.cxx new file mode 100644 index 0000000..2bacda6 --- /dev/null +++ b/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; +} diff --git a/Source/CTest/cmCTestVC.h b/Source/CTest/cmCTestVC.h new file mode 100644 index 0000000..b2f25e8 --- /dev/null +++ b/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 -- cgit v0.12