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 PRIVATE
dependência.
Se seus arquivos de origem e seus cabeçalhos incluem os cabeçalhos de outra biblioteca, então é uma PUBLIC
dependência.
Se seus arquivos de cabeçalho, mas não seus arquivos de origem, incluem os cabeçalhos de outra biblioteca, então é uma INTERFACE
dependência.
Outras propriedades de construção PUBLIC
e INTERFACE
dependê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