Как заставить CMake связываться с библиотеками отладки в новой конфигурации Visual Studio? - PullRequest
2 голосов
/ 27 февраля 2012

Я использую CMake для создания проекта Visual Studio 2008.В этом проекте мне нужно создать новую конфигурацию под названием UnitaryTests.Итак, в CMakeLists.txt я поместил строку

set(CMAKE_CONFIGURATION_TYPES "Release;Debug;UnitaryTest" CACHE STRING "Configurations" FORCE) 

Позже в файле CMakeLists.txt есть следующая строка:

target_link_libraries( ${PROJECT_NAME} ${ASTEK_LIBRARIES} )

для связи с внешним пакетом.Переменная ASTEK_LIBRARIES содержит текст вроде:

debug;debug/libs;optimized;release/libs

Моя проблема в том, что я должен заставить новую конфигурацию использовать только отладочную версию этого пакета (в настоящее время она использует версию выпуска).Вы знаете, как это сделать?

Примечание: не я заполняю переменную ASTEK_LIBRARIES.Он создан по корпоративному сценарию, который я не могу изменить.

Спасибо за вашу помощь.

Ответы [ 2 ]

4 голосов
/ 28 февраля 2012

Использование:

set_property(GLOBAL PROPERTY DEBUG_CONFIGURATIONS "Debug;UnitaryTest")

Если вы также определили RelWithDebInfo, это тоже будет здесь.

Для дальнейшей информации запустите:

cmake --help-property DEBUG_CONFIGURATIONS
0 голосов
/ 03 марта 2019

Чтобы заставить target_link_libraries() ссылаться на другую библиотеку на для каждой цели , замените ключевые слова, если это необходимо, перед установкой ссылки. В следующем примере показано, как заменить «оптимизированный» на «общий», чтобы заставить отладочную сборку связываться с библиотекой выпуска (оптимизированной):

string(REPLACE "optimized" "general" MODIFIED_LIBS "${MY_LIBS}")
target_link_libraries(MyTarget ${MODIFIED_LIBS})

например. Для MY_LIBS = "optimized; mylib.lib; debug; mylib_d.lib" MODIFIED_LIBS будет «общим; mylib.lib; debug; mylib_d.lib». В этом примере ключевое слово 'general' приведет к тому, что обе библиотеки будут связаны с вашей целью во время отладочной сборки.

См. https://cmake.org/cmake/help/latest/command/target_link_libraries.html для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...