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:
parent
fd3323177d
commit
350eeeab4e
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue