summaryrefslogtreecommitdiffstats
path: root/Source/ctest.cxx
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2002-10-09 00:02:01 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2002-10-09 00:02:01 (GMT)
commit350eeeab4e3833ee12385dfacef34b8513b81fa5 (patch)
tree33c5ecdd98663f72d5dcc27a946485adf5dabba6 /Source/ctest.cxx
parentfd3323177d1bceea0cfac851f36fc4a46fc03366 (diff)
downloadCMake-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.cxx49
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();