Using Visual Studio for the IDE, but using CMake for cross-platform configuration

My best answer for your question:

While I cannot recommend this tool since I have not used it, it seems to be the closest in line to what you are looking for.

http://sourceforge.net/projects/vcproj2cmake/

It requires a Ruby runtime to be installed on your machine, but it will generate CMakeLists.txt files based on your Visual Studio project.

I would be cautious depending on this too much, as there may be some subtle CMake nuances that are lost in the conversion, but it has several favorable reviews and will certainly make the process easier, even if there are some manual steps involved prior to checking in (to verify the CMake script is correct).

Perhaps you can integrate this with unit testing to verify the integrity of the CMake scripts? And you could always offer patches for issues you do find.

A potential alternative:

I am inferring some things, so forgive me if I am making any assumptions.

If your goals are to be cross platform and CMake isn't a requirement as a technology (just a means to that ends), but you don't want to adopt using the recommended CMake workflow because it's not very intuitive (I can totally understand that), perhaps you can take a look at Premake, which is newer, but still a fairly robust project generation tool:

I've found that the syntax (pure Lua) is much easier to grok, and it models its projects much more closely to Visual Studio solutions. This might be a more natural workflow for you.

Also it's open source, and I found it's actually surprisingly easy to add extensions to it (it's been a year since I last used it so, and I am not sure what the state of it is in now). Perhaps you could build a reverse generator as well, since the library comes complete with a Visual Studio project parser and with a little creativity you could have it generate in both directions.

I chose not to adopt it a year ago, because at that time it had difficulty generating Xcode projects that depended on one another (perhaps it's fixed!). I didn't have any problems with Makefiles or Visual Studio solutions though.

A final recommendation

The reason I would not recommend reverse generating project generation scripts from a Visual Studio project is simply that it puts a very awkward dependency on your project. Visual Studio projects are not standardized, or even open - and if Microsoft changes the format you could break your workflow until you or someone else creates a patch for your reverse-generator to get you working again.

You could argue that project generation shares the same problems, but Visual Studio has historically always been backwards compatible - or at least shipping with tools to perform project updating. Generating a project in an older version will most likely always work, while trying to parse a newer revision of a Visual Studio solution would be much more prone to error and breakage.

If this is for a serious production project that you hope will continue to be used and maintained for many years to come, I would strongly advise adopting a proven workflow (working directly in CMake or Premake files) even if it's less than ideal or uncomfortable at first for developers. If it's going to be a long-term project, the time it would take you to get familiar in the new workflow would be dwarfed by the time it would take you to continue to maintain an ad hoc build system across multiple platforms and varying teams. Plus, it would add another tool to your belt as a developer. Just my two cents.