Многоцелевой проект 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 для нацеливания на разные сборки и использовать разные библиотеки в вашем коде.

Другие вопросы по тегам