Якщо ви створюєте спільну бібліотеку та вихідні файли cpp #include заголовки іншої бібліотеки (скажімо, QtNetwork, наприклад), але ваші файли заголовків не містять заголовків QtNetwork, тоді QtNetwork - це PRIVATE
залежність.
Якщо ваші вихідні файли та ваші заголовки містять заголовки іншої бібліотеки, то це PUBLIC
залежність.
Якщо ваші файли заголовків, але не вихідні, містять заголовки іншої бібліотеки, то це INTERFACE
залежність.
Інші властивості побудови PUBLIC
та INTERFACE
залежності поширюються на споживаючі бібліотеки. http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements