diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-06-03 20:10:55 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-06-03 20:10:55 (GMT) |
commit | 1a165dc60de12499eb3610db7efcc5fcbf48b780 (patch) | |
tree | 2fb1a463dbdcb9d5c7435c36ed0dbf77bb61d6e8 /Source/CTest/cmCTestBuildAndTestHandler.h | |
parent | 6fe633e1f75d296caf8890ca75c5899492de9f13 (diff) | |
download | CMake-1a165dc60de12499eb3610db7efcc5fcbf48b780.zip CMake-1a165dc60de12499eb3610db7efcc5fcbf48b780.tar.gz CMake-1a165dc60de12499eb3610db7efcc5fcbf48b780.tar.bz2 |
ENH: Move the build-and-test code to a handler
Diffstat (limited to 'Source/CTest/cmCTestBuildAndTestHandler.h')
-rw-r--r-- | Source/CTest/cmCTestBuildAndTestHandler.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Source/CTest/cmCTestBuildAndTestHandler.h b/Source/CTest/cmCTestBuildAndTestHandler.h new file mode 100644 index 0000000..788b28f --- /dev/null +++ b/Source/CTest/cmCTestBuildAndTestHandler.h @@ -0,0 +1,78 @@ +/*========================================================================= + + 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 cmCTestBuildAndTestHandler_h +#define cmCTestBuildAndTestHandler_h + + +#include "cmCTestGenericHandler.h" +#include "cmListFileCache.h" + +class cmake; + +/** \class cmCTestBuildAndTestHandler + * \brief A class that handles ctest -S invocations + * + */ +class cmCTestBuildAndTestHandler : public cmCTestGenericHandler +{ +public: + + /* + * The main entry point for this class + */ + int ProcessHandler(); + + //! Set all the build and test arguments + virtual int ProcessCommandLineArguments( + const std::string& currentArg, size_t& idx, + const std::vector<std::string>& allArgs); + + /* + * Get the output variable + */ + const char* GetOutput(); + + cmCTestBuildAndTestHandler(); + +protected: + ///! Run CMake and build a test and then run it as a single test. + int RunCMakeAndTest(std::string* output); + int RunCMake(std::string* outstring, cmOStringStream &out, + std::string &cmakeOutString, + std::string &cwd, cmake *cm); + + cmStdString m_Output; + + std::string m_BuildGenerator; + std::vector<std::string> m_BuildOptions; + bool m_BuildTwoConfig; + std::string m_BuildMakeProgram; + std::string m_SourceDir; + std::string m_BinaryDir; + std::string m_BuildProject; + std::string m_TestCommand; + bool m_BuildNoClean; + std::string m_BuildRunDir; + std::string m_ExecutableDirectory; + std::vector<std::string> m_TestCommandArgs; + std::string m_BuildTarget; + bool m_BuildNoCMake; +}; + +#endif + |