/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #include "cmConfigure.h" // IWYU pragma: keep #include #include #include #include #include #include "cmAlgorithms.h" #include "cmPolicies.h" class cmFileSet; class cmGlobalGenerator; class cmMakefile; class cmTarget; class cmTest; namespace cmDebugger { class cmDebuggerStackFrame; class cmDebuggerVariables; class cmDebuggerVariablesManager; } template class BT; namespace cmDebugger { class cmDebuggerVariablesHelper { cmDebuggerVariablesHelper() = default; public: static std::shared_ptr Create( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, cmPolicies::PolicyMap const& policyMap); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, std::vector> const& list); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, cmBTStringRange const& entries); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, std::set const& values); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, std::vector const& values); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, std::vector> const& list); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, cmFileSet* fileSet); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, std::vector const& fileSets); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, cmTest* test); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, std::vector const& tests); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, std::vector const& targets); static std::shared_ptr Create( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, std::shared_ptr const& frame); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, cmMakefile* mf); static std::shared_ptr CreateIfAny( std::shared_ptr const& variablesManager, std::string const& name, bool supportsVariableType, cmGlobalGenerator* gen); }; } // namespace cmDebugger