summaryrefslogtreecommitdiffstats
path: root/Source/cmCallVisualStudioMacro.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmCallVisualStudioMacro.h')
-rw-r--r--Source/cmCallVisualStudioMacro.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/Source/cmCallVisualStudioMacro.h b/Source/cmCallVisualStudioMacro.h
new file mode 100644
index 0000000..9b5b3a8
--- /dev/null
+++ b/Source/cmCallVisualStudioMacro.h
@@ -0,0 +1,36 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cmCallVisualStudioMacro_h
+#define cmCallVisualStudioMacro_h
+
+#include "cmConfigure.h" // IWYU pragma: keep
+
+#include <string>
+
+/** \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,
+ const 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:
+};
+
+#endif