Если одна скомпилированная библиотека нуждается в другой для компоновки - это зависимость PUBLI C? - PullRequest
0 голосов
/ 02 апреля 2020

Предположим, я пишу 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?

...