diff options
-rw-r--r-- | Source/CTest/cmCTestScriptHandler.cxx | 12 | ||||
-rw-r--r-- | Source/CTest/cmCTestScriptHandler.h | 7 | ||||
-rw-r--r-- | Source/cmCTest.cxx | 2 | ||||
-rw-r--r-- | Source/cmCTest.h | 4 |
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; |