2009-02-24 18:39:28 +03:00
|
|
|
/*=========================================================================
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2009-02-24 20:49:57 +03:00
|
|
|
#include "cmProcessTools.h"
|
2009-02-24 18:39:28 +03:00
|
|
|
|
|
|
|
class cmCTest;
|
|
|
|
|
|
|
|
/** \class cmCTestVC
|
|
|
|
* \brief Base class for version control system handlers
|
|
|
|
*
|
|
|
|
*/
|
2009-02-24 20:49:57 +03:00
|
|
|
class cmCTestVC: public cmProcessTools
|
2009-02-24 18:39:28 +03:00
|
|
|
{
|
|
|
|
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);
|
|
|
|
|
2009-02-24 20:50:48 +03:00
|
|
|
/** Get the date/time specification for the current nightly start time. */
|
|
|
|
std::string GetNightlyTime();
|
|
|
|
|
2009-02-24 20:50:15 +03:00
|
|
|
/** Perform cleanup operations on the work tree. */
|
|
|
|
void Cleanup();
|
|
|
|
|
2009-02-24 20:52:36 +03:00
|
|
|
void MarkOldRevision() { this->NoteOldRevision(); }
|
|
|
|
void MarkNewRevision() { this->NoteNewRevision(); }
|
2009-02-24 18:39:28 +03:00
|
|
|
protected:
|
2009-02-24 20:50:15 +03:00
|
|
|
// Internal API to be implemented by subclasses.
|
|
|
|
virtual void CleanupImpl();
|
2009-02-24 20:52:36 +03:00
|
|
|
virtual void NoteOldRevision();
|
|
|
|
virtual void NoteNewRevision();
|
2009-02-24 18:39:28 +03:00
|
|
|
|
2009-02-24 20:49:57 +03:00
|
|
|
/** Convert a list of arguments to a human-readable command line. */
|
|
|
|
static std::string ComputeCommandLine(char const* const* cmd);
|
|
|
|
|
|
|
|
/** Run a command line and send output to given parsers. */
|
|
|
|
bool RunChild(char const* const* cmd, OutputParser* out,
|
|
|
|
OutputParser* err, const char* workDir = 0);
|
|
|
|
|
2009-02-24 18:39:28 +03:00
|
|
|
// 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
|