diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2002-10-09 00:02:01 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2002-10-09 00:02:01 (GMT) |
commit | 350eeeab4e3833ee12385dfacef34b8513b81fa5 (patch) | |
tree | 33c5ecdd98663f72d5dcc27a946485adf5dabba6 /Source/ctest.cxx | |
parent | fd3323177d1bceea0cfac851f36fc4a46fc03366 (diff) | |
download | CMake-350eeeab4e3833ee12385dfacef34b8513b81fa5.zip CMake-350eeeab4e3833ee12385dfacef34b8513b81fa5.tar.gz CMake-350eeeab4e3833ee12385dfacef34b8513b81fa5.tar.bz2 |
Add configure option and fix potential bug in other targets. Now the run command is actually run with directory, so eventually we should be able to run this from a subdirectory
Diffstat (limited to 'Source/ctest.cxx')
-rw-r--r-- | Source/ctest.cxx | 49 |
1 files changed, 46 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(); |