Si está creando una biblioteca compartida y sus archivos cpp de origen #incluyen los encabezados de otra biblioteca (digamos, QtNetwork por ejemplo), pero sus archivos de encabezado no incluyen encabezados QtNetwork, entonces QtNetwork es una PRIVATE
dependencia.
Si sus archivos de origen y sus encabezados incluyen los encabezados de otra biblioteca, entonces es una PUBLIC
dependencia.
Si sus archivos de encabezado, pero no sus archivos de origen, incluyen los encabezados de otra biblioteca, entonces es una INTERFACE
dependencia.
Otras propiedades de compilación PUBLIC
y INTERFACE
dependencias se propagan a las bibliotecas consumidoras. http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements