Nếu bạn đang tạo một thư viện được chia sẻ và các tệp cpp nguồn của bạn #include header của một thư viện khác (Ví dụ: Giả sử QtNetwork), nhưng các tệp tiêu đề của bạn không bao gồm các tiêu đề QtNetwork, thì QtNetwork là một phần PRIVATE
phụ thuộc.
Nếu các tệp nguồn của bạn và các tiêu đề của bạn bao gồm các tiêu đề của một thư viện khác, thì đó là một phần PUBLIC
phụ thuộc.
Nếu các tệp tiêu đề của bạn nhưng không phải tệp nguồn của bạn bao gồm các tiêu đề của thư viện khác, thì đó là một phần INTERFACE
phụ thuộc.
Các thuộc tính xây dựng khác của PUBLIC
và các INTERFACE
phụ thuộc được truyền tới các thư viện tiêu thụ. http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements