cmCTestUploadCommand.cxx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #include "cmCTestUploadCommand.h"
  4. #include <sstream>
  5. #include <vector>
  6. #include "cmCTest.h"
  7. #include "cmCTestUploadHandler.h"
  8. #include "cmMakefile.h"
  9. #include "cmMessageType.h"
  10. #include "cmSystemTools.h"
  11. cmCTestGenericHandler* cmCTestUploadCommand::InitializeHandler()
  12. {
  13. cmCTestUploadHandler* handler = this->CTest->GetUploadHandler();
  14. handler->Initialize();
  15. handler->SetFiles(this->Files);
  16. handler->SetQuiet(this->Quiet);
  17. return handler;
  18. }
  19. bool cmCTestUploadCommand::CheckArgumentKeyword(std::string const& arg)
  20. {
  21. if (arg == "FILES") {
  22. this->ArgumentDoing = ArgumentDoingFiles;
  23. return true;
  24. }
  25. if (arg == "QUIET") {
  26. this->ArgumentDoing = ArgumentDoingNone;
  27. this->Quiet = true;
  28. return true;
  29. }
  30. if (arg == "CAPTURE_CMAKE_ERROR") {
  31. this->ArgumentDoing = ArgumentDoingCaptureCMakeError;
  32. return true;
  33. }
  34. return false;
  35. }
  36. bool cmCTestUploadCommand::CheckArgumentValue(std::string const& arg)
  37. {
  38. if (this->ArgumentDoing == ArgumentDoingCaptureCMakeError) {
  39. this->Values[ct_CAPTURE_CMAKE_ERROR] = arg.c_str();
  40. return true;
  41. }
  42. if (this->ArgumentDoing == ArgumentDoingFiles) {
  43. if (cmSystemTools::FileExists(arg)) {
  44. this->Files.insert(arg);
  45. return true;
  46. }
  47. std::ostringstream e;
  48. e << "File \"" << arg << "\" does not exist. Cannot submit "
  49. << "a non-existent file.";
  50. this->Makefile->IssueMessage(MessageType::FATAL_ERROR, e.str());
  51. this->ArgumentDoing = ArgumentDoingError;
  52. return false;
  53. }
  54. // Look for other arguments.
  55. return this->Superclass::CheckArgumentValue(arg);
  56. }