I have always used Visual Studios, built into the GUI support, to customize my projects, often using property sheets so that several projects use a common set.
One of my main concerns is managing multiple projects, configurations, and platforms. If you just do everything with the main graphical interface (right-click the project β properties), it quickly becomes messy, difficult to error and prone to errors (for example, you cannot correctly identify any macro or use the wrong runtime library, etc.) d.). Dealing with the fact that different people put dependency libraries there in different places (for example, mine all live in "C: \ Libs \ [C, C ++] \ [lib-name] \"), and then often manage various different versions of these libraries (release, debugging, x86, x64, etc.) is also a big problem, since it greatly complicates the time it takes to configure it in the new system, and then there are problems with version control and saving all paths ..
Property sheets do this a little better, but I cannot have one sheet with separate settings for different configurations and platforms (gray drop-down boxes), as a result I have many sheets that, if inherited in the correct order, do what I want ("x86", "x64", "debug", "release", "general", "directories" (deals with the previously mentioned dependency problem, defining user macros like BoostX86LibDir, etc.) and if it is not inherited correctly (for example, βcommonβ to βx64β and βdebugβ) leads to problems such as trying to link the incorrect UIS library or incorrect naming ...
What I want is a way to deal with all these scattered dependencies and create a set of "rules" that are used by all my projects in the solution, for example, the name of the output library as "mylib- [vc90, vc100] - [x86, x64] [- d] .lib ", without having to do all this for each individual project, configuration and combination of the platform, and then synchronize them all correctly.
I am aware of the transition to completely different systems, such as CMake, which create the necessary files, but this complicates the situation in other places, making it so that even simple tasks, such as adding a new file to the project, require additional changes elsewhere, which I'm not happy either that if there are any features with VS2010 integration that can track these changes.