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