Если это возможно, я использую методы, перечисляет все, что определено в библиотеке А, также в C?
Использует ли ваша библиотека C эти методы / enums / и др c. через , включая заголовок из библиотеки A или из библиотеки B?
Если C напрямую включает заголовок из библиотеки A, то он должен быть связан с библиотекой A явно :
# A is a private linkage of B.
target_link_libraries(B PRIVATE A)
# C needs to be linked with A
target_link_libraries(C B A)
Если C включает заголовок из библиотеки B, который, в свою очередь, включает заголовок из библиотеки A, то библиотека должна быть часть интерфейса B :
# B links with A and this linkage is an interface of B
target_link_libraries(B PUBLIC A)
# C may link with B only
target_link_libraries(C B)
Эти подходы предполагают использование "современного" (ориентированного на target ) CMake. Но используя эти подходы, можно получить наиболее масштабируемое решение.