как обрабатывать несколько версий одной и той же библиотеки, если они представлены как вложенные подмодули

У меня есть проект, который зависит от 3 библиотек A, B и C. A и B — это git-репозитории, основанные на CMake, и оба зависят от C и поэтому включают его как подмодуль (но разные версии из разных репо). Итак, структура моего проекта выглядит так:

ext/
libA/
libC/  (submodule of libA repo)
...
libB/
libC/  (submodule of libB repo)
...
main.cpp
CMakeLists.txt

CMakeLists.txt выглядит так:

add_subdirectory("ext/libA")
add_subdirectory("ext/libB")

add_executable(MyApp main.cpp)
target_include_directories(MyApp ...)
target_link_library(MyApp libA libB libC)

Каков наилучший способ справиться с этой вложенной общей зависимостью? В идеале я хотел бы использовать одну версию libC для libA, libB и моего проекта, но я не знаю ненавязчивого способа (т.е. без изменения файлов cmake libA и libB) сделать это.

Мне очень нравится комбинация подмодулей и CMake add_subdirectory, потому что она проста и понятна, но вложенные зависимости сложны.

5

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]