diff options
-rw-r--r-- | Source/ctest.cxx | 49 | ||||
-rw-r--r-- | Source/ctest.h | 6 |
2 files changed, 52 insertions, 3 deletions
diff --git a/Source/ctest.cxx b/Source/ctest.cxx index 7495141..85d5a21 100644 --- a/Source/ctest.cxx +++ b/Source/ctest.cxx @@ -143,6 +143,10 @@ bool ctest::SetTest(const char* ttype) { m_Tests[ctest::UPDATE_TEST] = 1; } + else if ( cmSystemTools::LowerCase(ttype) == "configure" ) + { + m_Tests[ctest::CONFIGURE_TEST] = 1; + } else if ( cmSystemTools::LowerCase(ttype) == "build" ) { m_Tests[ctest::BUILD_TEST] = 1; @@ -281,7 +285,7 @@ void ctest::UpdateDirectory() } std::string sourceDirectory = m_DartConfiguration["SourceDirectory"]; - if ( cvsOptions.size() == 0 ) + if ( sourceDirectory.size() == 0 ) { std::cerr << "Cannot find SourceDirectory key in the DartConfiguration.tcl" << std::endl; return; @@ -293,7 +297,34 @@ void ctest::UpdateDirectory() int retVal; bool res = cmSystemTools::RunCommand(command.c_str(), output, retVal, sourceDirectory.c_str(), - true); + m_Verbose); + if (! res || retVal ) + { + std::cerr << "Error(s) when updating the project" << std::endl; + } +} + +void ctest::ConfigureDirectory() +{ + std::string cCommand = m_DartConfiguration["ConfigureCommand"]; + if ( cCommand.size() == 0 ) + { + std::cerr << "Cannot find ConfigureCommand key in the DartConfiguration.tcl" << std::endl; + return; + } + + std::string buildDirectory = m_DartConfiguration["BuildDirectory"]; + if ( buildDirectory.size() == 0 ) + { + std::cerr << "Cannot find BuildDirectory key in the DartConfiguration.tcl" << std::endl; + return; + } + + std::string output; + int retVal; + bool res = cmSystemTools::RunCommand(cCommand.c_str(), output, + retVal, buildDirectory.c_str(), + m_Verbose); if (! res || retVal ) { std::cerr << "Error(s) when updating the project" << std::endl; @@ -308,10 +339,18 @@ void ctest::BuildDirectory() std::cerr << "Cannot find MakeCommand key in the DartConfiguration.tcl" << std::endl; return; } + std::string buildDirectory = m_DartConfiguration["BuildDirectory"]; + if ( buildDirectory.size() == 0 ) + { + std::cerr << "Cannot find BuildDirectory key in the DartConfiguration.tcl" << std::endl; + return; + } + std::string output; int retVal; bool res = cmSystemTools::RunCommand(makeCommand.c_str(), output, - retVal, 0, true); + retVal, buildDirectory.c_str(), + m_Verbose); if (! res || retVal ) { std::cerr << "Error(s) when building project" << std::endl; @@ -577,6 +616,10 @@ int ctest::ProcessTests() { this->UpdateDirectory(); } + if ( m_Tests[CONFIGURE_TEST] || m_Tests[ALL_TEST] ) + { + this->ConfigureDirectory(); + } if ( m_Tests[BUILD_TEST] || m_Tests[ALL_TEST] ) { this->BuildDirectory(); diff --git a/Source/ctest.h b/Source/ctest.h index a427e7b..23c59b6 100644 --- a/Source/ctest.h +++ b/Source/ctest.h @@ -50,6 +50,11 @@ public: void UpdateDirectory(); /** + * Do configure the project + */ + void ConfigureDirectory(); + + /** * Run the test for a directory and any subdirectories */ void ProcessDirectory(std::vector<std::string> &passed, @@ -90,6 +95,7 @@ private: enum { FIRST_TEST = 0, UPDATE_TEST, + CONFIGURE_TEST, BUILD_TEST, TEST_TEST, COVERAGE_TEST, |