summaryrefslogtreecommitdiffstats
path: root/Source/cmVisualStudio10ToolsetOptions.h
diff options
context:
space:
mode:
authorDon Olmstead <don.j.olmstead@gmail.com>2016-10-18 00:50:34 (GMT)
committerBrad King <brad.king@kitware.com>2016-10-25 13:46:21 (GMT)
commit69fc7bf87db33d88af02602fba811b5c5e740a70 (patch)
tree9c506a4e79bc0912107d78cb1f05368399f18c53 /Source/cmVisualStudio10ToolsetOptions.h
parente2ed9a70929092ab7b32e036886859e53fbff897 (diff)
downloadCMake-69fc7bf87db33d88af02602fba811b5c5e740a70.zip
CMake-69fc7bf87db33d88af02602fba811b5c5e740a70.tar.gz
CMake-69fc7bf87db33d88af02602fba811b5c5e740a70.tar.bz2
VS: Choose flag map based on the toolset name
MSBuild interprets the `.vcxproj` content based on the `PlatformToolset` setting, so our reverse mapping needs to be based on that setting too. For VS 2010 and above, choose the flag map to match the toolset name rather than the generator VS version. Issue: #16153
Diffstat (limited to 'Source/cmVisualStudio10ToolsetOptions.h')
-rw-r--r--Source/cmVisualStudio10ToolsetOptions.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/Source/cmVisualStudio10ToolsetOptions.h b/Source/cmVisualStudio10ToolsetOptions.h
new file mode 100644
index 0000000..ea6c9c8
--- /dev/null
+++ b/Source/cmVisualStudio10ToolsetOptions.h
@@ -0,0 +1,33 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cmVisualStudio10ToolsetOptions_h
+#define cmVisualStudio10ToolsetOptions_h
+
+#include "cmStandardIncludes.h"
+
+struct cmIDEFlagTable;
+
+/** \class cmVisualStudio10ToolsetOptions
+ * \brief Retrieves toolset options for MSBuild.
+ *
+ * cmVisualStudio10ToolsetOptions manages toolsets within MSBuild
+ */
+class cmVisualStudio10ToolsetOptions
+{
+public:
+ cmIDEFlagTable const* GetClFlagTable(std::string const& name,
+ std::string const& toolset) const;
+ cmIDEFlagTable const* GetRcFlagTable(std::string const& name,
+ std::string const& toolset) const;
+ cmIDEFlagTable const* GetLibFlagTable(std::string const& name,
+ std::string const& toolset) const;
+ cmIDEFlagTable const* GetLinkFlagTable(std::string const& name,
+ std::string const& toolset) const;
+ cmIDEFlagTable const* GetMasmFlagTable(std::string const& name,
+ std::string const& toolset) const;
+
+private:
+ std::string GetToolsetName(std::string const& name,
+ std::string const& toolset) const;
+};
+#endif