Did a bit of poking around the CMake codebase to see what a patch might look 
like. Was thinking something along the lines of this.

#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 name) const;
  cmIDEFlagTable const* GetRcFlagTable(std::string name) const;
  cmIDEFlagTable const* GetLibFlagTable(std::string name) const;
  cmIDEFlagTable const* GetLinkFlagTable(std::string name) const;
  cmIDEFlagTable const* GetMasmFlagTable(std::string name) const;
};
#endif

This particular class would handle the loading of the JSON data and returning 
it to the client code in the current cmIDEFlagTable setup.

One possible addition might be to include the target architecture. It appears 
that at least within VS 2015 the Toolsets are organized first by architecture 
(MSBuild\Microsoft.Cpp\v4.0\V140\Platforms).

It feels like it should possibly get bolted onto 
cmGlobalVisualStudio10Generator with theGet*FlagTable methods moved over from 
cmVisualStudio10TargetGenerator.

Also from looking at the various definitions within MSBuild that creating a 
tool that parses the XML definitions into what's expected by whatever the JSON 
format ends up looking like wouldn't be too bad. I started a script in Python 
that would probably do the trick. If there's a preferred language though I can 
use that assuming something along those lines would be accepted in a patch.

When contributing would you prefer a series of patches or just a single large 
patch?
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to