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