/*============================================================================ CMake - Cross Platform Makefile Generator Copyright 2000-2009 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ #ifndef cmCTestStartCommand_h #define cmCTestStartCommand_h #include "cmCTestCommand.h" /** \class cmCTestStart * \brief Run a ctest script * * cmCTestStartCommand defineds the command to start the nightly testing. */ class cmCTestStartCommand : public cmCTestCommand { public: cmCTestStartCommand(); /** * This is a virtual constructor for the command. */ virtual cmCommand* Clone() { cmCTestStartCommand* ni = new cmCTestStartCommand; ni->CTest = this->CTest; ni->CTestScriptHandler = this->CTestScriptHandler; ni->CreateNewTag = this->CreateNewTag; return ni; } /** * This is called when the command is first encountered in * the CMakeLists.txt file. */ virtual bool InitialPass(std::vector const& args, cmExecutionStatus &status); /** * Will this invocation of ctest_start create a new TAG file? */ bool ShouldCreateNewTag() { return this->CreateNewTag; } /** * The name of the command as specified in CMakeList.txt. */ virtual const char* GetName() { return "ctest_start";} /** * Succinct documentation. */ virtual const char* GetTerseDocumentation() { return "Starts the testing for a given model"; } /** * More documentation. */ virtual const char* GetFullDocumentation() { return " ctest_start(Model [TRACK ] [APPEND] [source [binary]])\n" "Starts the testing for a given model. The command should be called " "after the binary directory is initialized. If the 'source' and " "'binary' directory are not specified, it reads the " "CTEST_SOURCE_DIRECTORY and CTEST_BINARY_DIRECTORY. If the track is " "specified, the submissions will go to the specified track. " "If APPEND is used, the existing TAG is used rather than " "creating a new one based on the current time stamp."; } cmTypeMacro(cmCTestStartCommand, cmCTestCommand); private: bool InitialCheckout(std::ostream& ofs, std::string const& sourceDir); bool CreateNewTag; }; #endif