Многоцелевой проект Visual Studio: один исходный код
Любые предложения о том, как можно настроить систему сборки, которая бы компилировала одну или две библиотеки для нескольких разных платформ / целей.
Основной проект находится в Visual Studio.
Например, у меня есть библиотека:
nav.lib
Он компилируется в Windows и Linux с несколькими настройками.
Исполняемый файл, который использует библиотеку win_nav.lib, в настоящее время компилируется только в Windows с OpenGL.
Я портирую этот код на iPhone. Хотя я знаю, что не могу скомпилировать и связать всю библиотеку на окнах, я хотел бы попытаться скомпилировать графический код с помощью включений OpenGL и включений OpenGLES. (Возможно, я смогу протестировать свой код opengles на машине с Windows?)
Я планирую изменить свой графический файл для включения на основе флагов препроцессора:
#ifdef USE_OPEN_GL_FULL
#include <opengl/gl.h>
#else
#include <opengles/gl.h>
#endif
Итак, как бы вы это сделали?
Используете пару разных скриптов или разные проекты в Visual Studio?
2 ответа
Для этого и нужны "Конфигурации решений". По умолчанию Visual Studio создает конфигурации выпуска и отладки, но вы также можете добавить свои собственные настройки. Параметры проекта различны для каждой конфигурации, поэтому просто установите #define в конфигурации, которая в ней нуждается.
Когда вы запускаете вашу автоматическую сборку, вы просто устанавливаете для параметра /build имя конфигурации, с которой вы хотите скомпилировать.
В VS вы можете использовать Configuration Manager для нацеливания на разные сборки и использовать разные библиотеки в вашем коде.