Я всегда использовал Visual Studios, встроенную в поддержку графического интерфейса, для настройки своих проектов, часто используя таблицы свойств, чтобы несколько проектов использовали общий набор.
Один из моих главных недостатков - управление несколькими проектами, конфигурациями и платформами. Если вы просто делаете все с помощью основного графического интерфейса пользователя (щелкните правой кнопкой мыши проект -> свойства), он быстро становится беспорядочным, сложным в обслуживании и подверженным ошибкам (например, не удается правильно определить какой-либо макрос или использовать неправильную библиотеку времени выполнения и т. Д.). Имея дело с тем, что разные люди помещают туда библиотеки зависимостей в разных местах (например, мои все живут в "C: \ Libs \ [C, C ++] \ [lib-name] \"), а затем часто управляют разными версиями этих библиотек по-разному (выпуск, отладка, x86, x64 и т. д.) также представляет собой большую проблему, поскольку это значительно усложняет время для его установки в новой системе, а также возникают проблемы с управлением версиями и разделением путей каждого .. .
Листы свойств делают это немного лучше, но у меня не может быть одного листа с отдельными настройками для разных конфигураций и платформ (выпадающие списки выделены серым цветом), в результате чего у меня много листов, которые, если унаследованы в правильном порядке, делают то, что Я хочу ("x86", "x64", "debug", "release", "common", "directoryies" (имеет дело с ранее упомянутой проблемой зависимости путем определения пользовательских макросов, таких как BoostX86LibDir) и т. Д.), И если наследуется неправильно порядок (например, «общий» перед «x64» и «отладка») приводит к таким проблемам, как попытка связать неверную версию библиотеки или неправильное присвоение имени выходному результату ...
Мне нужен способ справиться со всеми этими разбросанными зависимостями и настроить набор «правил», которые используются всеми моими проектами в решении, например, назвать библиотеку вывода как «mylib- [vc90, vc100] - [x86, x64] [- d] .lib ", без необходимости делать все это для каждого отдельного проекта, конфигурации и комбинации платформы, а затем синхронизировать их все правильно.
Мне известно о переходе на совершенно другие системы, такие как CMake, которые создают необходимые файлы, однако это затем усложняет ситуацию в другом месте, делая даже такие простые задачи, как добавление нового файла в проект, в других местах, а это не требует дополнительных изменений в другом месте, чего не происходит. что-то, чем я полностью доволен, разве что есть некоторые с интеграцией VS2010, которые могут отслеживать изменения такого рода.