summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/CTest/cmCTestScriptHandler.cxx12
-rw-r--r--Source/CTest/cmCTestScriptHandler.h7
-rw-r--r--Source/cmCTest.cxx2
-rw-r--r--Source/cmCTest.h4
4 files changed, 16 insertions, 9 deletions
diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx
index 9c2ac29..7f0c2eb 100644
--- a/Source/CTest/cmCTestScriptHandler.cxx
+++ b/Source/CTest/cmCTestScriptHandler.cxx
@@ -95,7 +95,7 @@ void cmCTestScriptHandler::AddConfigurationScript(const char *script)
//----------------------------------------------------------------------
// the generic entry point for handling scripts, this routine will run all
// the scripts provides a -S arguments
-int cmCTestScriptHandler::RunConfigurationScript()
+int cmCTestScriptHandler::RunConfigurationScript(cmCTest* ctest)
{
int res = 0;
std::vector<cmStdString>::iterator it;
@@ -104,7 +104,7 @@ int cmCTestScriptHandler::RunConfigurationScript()
it ++ )
{
// for each script run it
- res += this->RunConfigurationScript(
+ res += this->RunConfigurationScript(ctest,
cmSystemTools::CollapseFullPath(it->c_str()));
}
return res;
@@ -114,7 +114,7 @@ int cmCTestScriptHandler::RunConfigurationScript()
//----------------------------------------------------------------------
// this sets up some variables for thew script to use, creates the required
// cmake instance and generators, and then reads in the script
-int cmCTestScriptHandler::ReadInScript(const std::string& total_script_arg)
+int cmCTestScriptHandler::ReadInScript(cmCTest* ctest, const std::string& total_script_arg)
{
// if the argument has a , in it then it needs to be broken into the fist
// argument (which is the script) and the second argument which will be
@@ -156,6 +156,8 @@ int cmCTestScriptHandler::ReadInScript(const std::string& total_script_arg)
m_LocalGenerator->GetMakefile()->AddDefinition("CTEST_SCRIPT_NAME",
cmSystemTools::GetFilenameName(
script).c_str());
+ m_LocalGenerator->GetMakefile()->AddDefinition("CTEST_EXECUTABLE_NAME",
+ ctest->GetCTestExecutable());
// add the script arg if defined
if (script_arg.size())
{
@@ -277,13 +279,13 @@ void cmCTestScriptHandler::LocalSleep(unsigned int secondsToWait)
//----------------------------------------------------------------------
// run a specific script
-int cmCTestScriptHandler::RunConfigurationScript(
+int cmCTestScriptHandler::RunConfigurationScript(cmCTest* ctest,
const std::string& total_script_arg)
{
int result;
// read in the script
- result = this->ReadInScript(total_script_arg);
+ result = this->ReadInScript(ctest, total_script_arg);
if (result)
{
return result;
diff --git a/Source/CTest/cmCTestScriptHandler.h b/Source/CTest/cmCTestScriptHandler.h
index d21302d..dc27e1f 100644
--- a/Source/CTest/cmCTestScriptHandler.h
+++ b/Source/CTest/cmCTestScriptHandler.h
@@ -26,6 +26,7 @@ class cmMakefile;
class cmLocalGenerator;
class cmGlobalGenerator;
class cmake;
+class cmCTest;
/** \class cmCTestScriptHandler
* \brief A class that handles ctest -S invocations
@@ -74,7 +75,7 @@ public:
/**
* Run a dashboard using a specified confiuration script
*/
- int RunConfigurationScript();
+ int RunConfigurationScript(cmCTest* ctest);
/*
* If verbose then more informaiton is printed out
@@ -86,7 +87,7 @@ public:
private:
// reads in a script
- int ReadInScript(const std::string& total_script_arg);
+ int ReadInScript(cmCTest* ctest, const std::string& total_script_arg);
// extract vars from the script to set ivars
int ExtractVariables();
@@ -103,7 +104,7 @@ private:
int BackupDirectories();
void RestoreBackupDirectories();
- int RunConfigurationScript(const std::string& script);
+ int RunConfigurationScript(cmCTest* ctest, const std::string& script);
int RunConfigurationDashboard();
std::vector<cmStdString> m_ConfigurationScripts;
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index aee85e0..45703e6 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -1575,7 +1575,7 @@ int cmCTest::Run(std::vector<std::string>const& args, std::string* output)
// call process directory
if (this->m_RunConfigurationScript)
{
- res = this->ScriptHandler->RunConfigurationScript();
+ res = this->ScriptHandler->RunConfigurationScript(this);
}
else
{
diff --git a/Source/cmCTest.h b/Source/cmCTest.h
index fcc9bf1..477775a 100644
--- a/Source/cmCTest.h
+++ b/Source/cmCTest.h
@@ -179,6 +179,10 @@ public:
int RunTest(std::vector<const char*> args, std::string* output, int *retVal,
std::ostream* logfile);
+ //! Get the path to CTest
+ const char* GetCTestExecutable() { return m_CTestSelf.c_str(); }
+
+
private:
// these are helper classes
cmCTestBuildHandler *BuildHandler;