2015-08-04 6 views
2

В CMake можно ли задавать зависимости от конкретной конфигурации для конкретной конфигурации?CMake: для зависимостей конфигурации

Моя структура - это исполняемый файл, который может быть создан с помощью различных бэкэнд-рендерингов, одного OpenGL и другого D3D. Бэкэнд-рендереры имеют свои собственные (статические) библиотеки, и только одна библиотека должна быть связана в зависимости от конфигурации (например, GL_Debug, D3D_Debug и т. Д.). Однако не похоже, что команда add_dependency имеет любые параметры для настроек для каждой конфигурации.

Мое настоящее решение заключается в использовании конфигураций генерации (Debug, Release и т. Д.) И option для выбора типа визуализатора и регенерации решения, если я хотел бы переключиться. Однако это неудобно, если я хочу часто переключаться между ними. В идеале у меня было бы решение со всеми конфигурациями рендеринга, и я мог бы просто переключаться между ними в Visual Studio.

+0

'target_link_libraries' поддерживает настройки для каждой конфигурации. См. Документацию: http://www.cmake.org/cmake/help/v3.0/command/target_link_libraries.html. – Tsyvarev

+0

@ Tssyvarev Я читаю выражения генератора и вижу, как это сделать сейчас. Напишите в ответ, и я соглашусь. – MuertoExcobito

ответ

2

target_link_libraries команда может связываться в зависимости от конфигурации. Альтернативно, generator-expressions может использоваться для LINK_LIBRARIES недвижимости для исполняемого файла/библиотеки.

+0

Есть ли большая разница между этими двумя? Когда я должен использовать один над другим? –

+1

Согласно документации, 'target_link_libraries' фактически устанавливает свойство LINK_LIBRARIES для выражения-генератора, зависит от конфигурации. Если этого недостаточно, вы можете напрямую установить свойство LINK_LIBRARIES. – Tsyvarev

Смежные вопросы