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

This commit is contained in:
Andy Cedilnik 2002-10-08 20:02:01 -04:00
parent fd3323177d
commit 350eeeab4e
2 changed files with 52 additions and 3 deletions

View File

@ -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();

View File

@ -49,6 +49,11 @@ public:
*/
void UpdateDirectory();
/**
* Do configure the project
*/
void ConfigureDirectory();
/**
* Run the test for a directory and any subdirectories
*/
@ -90,6 +95,7 @@ private:
enum {
FIRST_TEST = 0,
UPDATE_TEST,
CONFIGURE_TEST,
BUILD_TEST,
TEST_TEST,
COVERAGE_TEST,