Предположим, я пишу CMakeLists.txt
библиотеки foo
. Источники foo
включают заголовки другой библиотеки bar
и функции вызова bar
. Но - заголовки из foo
включают в себя что-либо из bar
. Очевидно, что вам нужно, чтобы скомпилированные bar
объекты или общие объекты связывали приложение с foo
.
Теперь, в терминах CMake - это тот случай, когда bar
является зависимостью PUBLI C от foo
, или просто ЧАСТНЫЙ?
Я должен отметить, что мой соавтор предполагает, что даже если bar
объявлена ЧАСТНАЯ зависимость, я все равно получу что-то вроде:
INTERFACE_LINK_LIBRARIES "Quux::quux;\$<LINK_ONLY:bar::bar>"
как экспортируемое свойство цели foo::foo
. Но - я не мог проверить это по разным причинам.
Итак, что такое - ЧАСТНЫЙ или ОБЩЕСТВЕННЫЙ C?