| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying   file Copyright.txt or https://cmake.org/licensing for details.  */#include "cmCTestRunScriptCommand.h"#include "cmCTestScriptHandler.h"#include "cmMakefile.h"#include <sstream>class cmExecutionStatus;bool cmCTestRunScriptCommand::InitialPass(std::vector<std::string> const& args,                                          cmExecutionStatus& /*unused*/){  if (args.empty()) {    this->CTestScriptHandler->RunCurrentScript();    return true;  }  bool np = false;  unsigned int i = 0;  if (args[i] == "NEW_PROCESS") {    np = true;    i++;  }  int start = i;  // run each script  std::string returnVariable;  for (i = start; i < args.size(); ++i) {    if (args[i] == "RETURN_VALUE") {      ++i;      if (i < args.size()) {        returnVariable = args[i];      }    }  }  for (i = start; i < args.size(); ++i) {    if (args[i] == "RETURN_VALUE") {      ++i;    } else {      int ret;      cmCTestScriptHandler::RunScript(this->CTest, this->Makefile,                                      args[i].c_str(), !np, &ret);      std::ostringstream str;      str << ret;      this->Makefile->AddDefinition(returnVariable, str.str());    }  }  return true;}
 |