Commit 350eeeab authored by Andy Cedilnik's avatar Andy Cedilnik
Browse files

Add configure option and fix potential bug in other targets. Now the run...

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
parent fd332317
......@@ -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();
......
......@@ -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,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment