Краткая версия моего вопроса: как изменить порядок сборки проектов в моем решении, не заставляя один проект зависеть от другого?
В моем решении у меня есть 2 проекта:
1.) Исполняемый файл, написанный на C
2.) Статическая библиотека, содержащая модульные тесты с использованием инфраструктуры CUTest.
У меня есть 4 конфигурации сборки:
1.) Debug - я хочу только exe в режиме отладки. Статический проект lib не выбран, поэтому он не будет собираться.
2.) Release - хочу только exe в режиме релиза. Статический проект lib не выбран, поэтому он не будет собираться.
3.) Отладка с помощью модульных тестов - хотите, чтобы статическая библиотека была собрана, а затем исполняемая, поскольку в этом случае она зависит от библиотеки.
4.) Выпуск с модульными тестами - То же самое # 3, только в выпуске.
Поскольку исполняемый файл зависит от других библиотек и библиотек, которых нет в решении, я перечислил все эти файлы в качестве дополнительных зависимостей в настройках компоновщика. В конфигурациях сборки модульного теста у меня есть статическая библиотека, также включенная в список зависимостей исполняемого файла.
Теперь вот руб. До сих пор я нашел единственный способ изменить порядок сборки и убедиться, что статическая библиотека создается до того, как исполняемый файл - это щелкнуть правой кнопкой мыши решение и выбрать порядок сборки. В этом диалоговом окне говорится, что я должен использовать вкладку зависимостей, чтобы изменить порядок сборки. Это имеет смысл. Однако, если я отмечаю исполняемый файл как зависящий от статической библиотеки, он автоматически добавляет статическую библиотеку как зависимость компоновщика от исполняемого файла. Это хорошо для конфигов сборки юнит-теста. Однако в конфигурациях сборки, не относящихся к модульному тесту, он пытается связать статическую библиотеку, которая, если я выполнил очистку перед сборкой, была удалена и не может быть связана, потому что я не собираю ее в тех конфиги (и я не хочу, чтобы это было связано в этих случаях).
При этом, есть ли способ изменить порядок сборки без маркировки зависимостей? Я бы хотел установить порядок сборки для конфигураций модульного теста, чтобы убедиться, что статическая библиотека была собрана первой.