Se você estiver criando uma biblioteca compartilhada e seus arquivos cpp de origem # incluem os cabeçalhos de outra biblioteca (digamos, QtNetwork por exemplo), mas seus arquivos de cabeçalho não incluem cabeçalhos QtNetwork, então QtNetwork é uma PRIVATEdependência.
Se seus arquivos de origem e seus cabeçalhos incluem os cabeçalhos de outra biblioteca, então é uma PUBLICdependência.
Se seus arquivos de cabeçalho, mas não seus arquivos de origem, incluem os cabeçalhos de outra biblioteca, então é uma INTERFACEdependência.
Outras propriedades de construção PUBLICe INTERFACEdependências são propagadas para as bibliotecas de consumo. http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements