cmDebuggerVariablesHelper.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #pragma once
  4. #include "cmConfigure.h" // IWYU pragma: keep
  5. #include <memory>
  6. #include <set>
  7. #include <string>
  8. #include <utility>
  9. #include <vector>
  10. #include "cmAlgorithms.h"
  11. #include "cmPolicies.h"
  12. class cmFileSet;
  13. class cmGlobalGenerator;
  14. class cmMakefile;
  15. class cmTarget;
  16. class cmTest;
  17. namespace cmDebugger {
  18. class cmDebuggerStackFrame;
  19. class cmDebuggerVariables;
  20. class cmDebuggerVariablesManager;
  21. }
  22. template <typename T>
  23. class BT;
  24. namespace cmDebugger {
  25. class cmDebuggerVariablesHelper
  26. {
  27. cmDebuggerVariablesHelper() = default;
  28. public:
  29. static std::shared_ptr<cmDebuggerVariables> Create(
  30. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  31. std::string const& name, bool supportsVariableType,
  32. cmPolicies::PolicyMap const& policyMap);
  33. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  34. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  35. std::string const& name, bool supportsVariableType,
  36. std::vector<std::pair<std::string, std::string>> const& list);
  37. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  38. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  39. std::string const& name, bool supportsVariableType,
  40. cmBTStringRange const& entries);
  41. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  42. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  43. std::string const& name, bool supportsVariableType,
  44. std::set<std::string> const& values);
  45. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  46. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  47. std::string const& name, bool supportsVariableType,
  48. std::vector<std::string> const& values);
  49. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  50. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  51. std::string const& name, bool supportsVariableType,
  52. std::vector<BT<std::string>> const& list);
  53. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  54. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  55. std::string const& name, bool supportsVariableType, cmFileSet* fileSet);
  56. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  57. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  58. std::string const& name, bool supportsVariableType,
  59. std::vector<cmFileSet*> const& fileSets);
  60. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  61. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  62. std::string const& name, bool supportsVariableType, cmTest* test);
  63. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  64. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  65. std::string const& name, bool supportsVariableType,
  66. std::vector<cmTest*> const& tests);
  67. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  68. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  69. std::string const& name, bool supportsVariableType,
  70. std::vector<cmTarget*> const& targets);
  71. static std::shared_ptr<cmDebuggerVariables> Create(
  72. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  73. std::string const& name, bool supportsVariableType,
  74. std::shared_ptr<cmDebuggerStackFrame> const& frame);
  75. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  76. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  77. std::string const& name, bool supportsVariableType, cmMakefile* mf);
  78. static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
  79. std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
  80. std::string const& name, bool supportsVariableType,
  81. cmGlobalGenerator* gen);
  82. };
  83. } // namespace cmDebugger