/* 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 /** \class cmCallVisualStudioMacro * \brief Control class for communicating with CMake's Visual Studio macros * * Find running instances of Visual Studio by full path solution name. * Call a Visual Studio IDE macro in any of those instances. */ class cmCallVisualStudioMacro { public: //! Call the named macro in instances of Visual Studio with the //! given solution file open. Pass "ALL" for slnFile to call the //! macro in each Visual Studio instance. static int CallMacro(const std::string& slnFile, const std::string& macro, const std::string& args, bool logErrorsAsMessages); //! Count the number of running instances of Visual Studio with the //! given solution file open. Pass "ALL" for slnFile to count all //! running Visual Studio instances. static int GetNumberOfRunningVisualStudioInstances( const std::string& slnFile); protected: private: };