Зависимости CMake от общей статической библиотеки - PullRequest
0 голосов
/ 03 июня 2018

У меня есть два отдельных проекта, каждый из которых создает общую библиотеку, которая связывается с общей статической библиотекой.В каждом из CMakeLists.txt общих библиотек у меня будет:

add_dependencies(my_shared1 my_common_lib)

и

add_dependencies(my_shared2 my_common_lib)

Статическая библиотека имеет свои собственные источники и находится в своей собственной папке.Каков наилучший способ определения общего статического скрипта cmake?

1 Ответ

0 голосов
/ 08 июня 2018

Если ваши "проекты" тесно связаны (например, живут в одном и том же хранилище / имеют один и тот же родительский каталог), просто напишите CMakeLists.txt над всеми тремя, что вызывает add_subdirectory для каждого каталога проекта.Если вы используете project в каждом, они должны отображаться как отдельные объекты в VS / XCode.

Если нет, просто напишите свой CMakeLists.txt для статической библиотеки, как обычно, сделайте так, чтобы он сам экспортировал (проверьте export() и install(EXPORTS)) и используйте find_package в потребителях, чтобы найти его, затем просто target_link_libraries импортированная цель.

Если они должны жить в отдельных репозиториях, но вам также нужно где-то создать сборку, которая строит все три, , тогда , вы будетехочу посмотреть Внешние проекты .

...